Как получить фокус на новое всплывающее окно, которое не имеет имени, идентификатора или уникального заголовка в селене - PullRequest
0 голосов
/ 17 августа 2011

Я хочу получить фокус или выбрать окно, всплывающее при нажатии на ссылку, и ссылка имеет следующие теги в html

<a target="_restaurant_50" href="/impersonate/50">View Dashboard</a>

, если я добавлю имя окна как _restaurant_50, это выдаст следующую ошибкув IDE

Window does not exist. If this looks like a Selenium bug, make sure to read http://seleniumhq.org/docs/04_selenese_commands.html#alerts-popups-and-multiple-windows for potential workarounds. 

Как я могу сфокусироваться на этом окне, пожалуйста, помогите ... Я попробовал все способы, указанные в сети, такие как получить все окна *, выбрать по названию, но он дает только родительский заголовок, окно переключения PHP веб-драйвера и т. д.

число 50 соответствует номеру в списке базы данных.

Я использую селен с PHP.

Подробности:
Имена массива перед кликом
(
[0] => selenium_main_app_window
)
Идентификаторы массива перед кликом
(
[0] => undefined
)

Имена массивов после нажатия
(
[0] => selenium_main_app_window
)
Идентификаторы массива после нажатия
(
[0] => undefined
) E

Обновление :
Я попытался открыть URL с помощью openWindow ("url", Windowname), которое открываетсянажмите кнопку.Это сработало, но оно открывает новую страницу, не следит за сеансом, вошедшим в систему, и снова просит войти в систему. Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 25 августа 2011

Я смог выполнить вышеизложенное, выполнив следующие действия.

у нас есть
<a target="_restaurant_50" href="/impersonate/50">View Dashboard</a>

использование
as=getAttribute(//xpath@href)

openWindow(as,MyWindow);
selectWindow("MyWindow");
windowFocus();

Это также работает для динамических ссылок.

Спасибо ВСЕМ за вашу ценную помощь.

0 голосов
/ 17 августа 2011

Я не знаком с драйверами PHP selenium, но способ, которым я сделал это с Java, заключался в том, чтобы получить список имен окон (или идентификаторов) перед щелчком, выполнить щелчок, получить новый список и выбрать окно, которое не былоне раньшеОбратите внимание, что есть команда selenium для получения всех известных имен и идентификаторов окон.

Кроме того, если проблема заключается только в том, что число генерируется из базы данных, вы можете получить целевой атрибут по ссылке, а затемиспользуйте его, чтобы выбрать открываемое окно.

...