Перейти к содержимому

inspectornaix

Регистрация: 30 авг 2012
Offline Активность: 23 сен 2021 21:32
-----

Мои темы

Selenium WD - проблема с несколькими поп-ап окнами

21 мая 2014 - 12:19

Друзья, прошу вашей помощи, так как бесчисленное кол-во прочтенных мануалов не дали результатов.

Для начала обрисую ситуацию:

 

На основной странице сайта есть кнопка, при клике на которую открывается Pop-Up окно.

В свойствах данной кнопки описано открытие этого окна. Только одного.

 

Нажимаем на кнопку, и видим как открывается это окно, назовем его w1, а вслед за ним открывается еще одно, назовем его w2.

У данных окон отсутствует параметр "name", поэтому было принято решение переключаться между ними при помощи

"getWindowHandles". 

 

Итак - кликаю я по кнопке:

$driver->findElement(WebDriverBy::linkText('TESTBUTTON'))->click();

и ловлю хандлы:

$handles = $driver->getWindowHandles();
var_dump($handles);

Далее начинается веселье. Окна открыто 3, а хандла поймано 2:

array(2) {
  [0]=>
  string(38) "{xxxxxxxx-xxxx-xxxx-xxxx-2a81223068e5}"
  [1]=>
  string(38) "{xxxxxxxx-xxxx-xxxx-xxxx-154255961df0}"
}

0 - основное окно

1 - первое дочернее

 

Подумал немного и решил сделать так - ловлю хандлы, переключаюсь на 1ое дочернее и делаю еще раз getwindowhandles:

$handles2= $driver->getWindowHandles();
var_dump($handles2);

И обнаружил что отображаются все те же 2 хандла - основного и первого дочернего.

 

 

 

Кто нибудь сталкивался с такой матрешкой и как вы вышли из ситуации?

Цель - переключиться на 2ое дочернее окно.