Я пытаюсь использовать selenium ide для дублирования действия. Действие - это щелчок по ссылке, открывающей новое окно. Как вы делаете ориентацию селена на новое окно, а не на другое? Это не работает для меня.
Как вы фокусируетесь на новых окнах с селеном ide?
Ответ 1
Выбрать окно
Для этого вам нужно будет использовать команду selectWindow | windowName
.
Чтобы вернуться в главное окно из другого окна, сделайте selectWindow | null
Arguments: * windowID - the JavaScript window ID of the window to select Selects a popup window using a window locator; once a popup window
все команды идут в это окно. Чтобы выбрать главное окно снова, используйте нуль в качестве цели.
Window locators provide different ways of specifying the window object:
по названию, по внутреннему JavaScript "имя" или переменная JavaScript.
* title=My Special Window: Finds the window using the text that
появится в строке заголовка. Быть осторожен; два окна могут использовать один и тот же заголовок. Если это произойдет, этот локатор будет просто выберите один. * name = myWindow: находит окно с использованием внутреннего JavaScript свойство "name". Это второй Параметр "windowName" передан в JavaScript метод window.open(url, windowName, windowFeatures, replaceFlag) (который Selenium перехватывает). * var = variableName: некоторые всплывающие окна неназванные (анонимный), но связаны с Имя переменной JavaScript в текущее окно приложения, например. "window.foo = window.open(url);". В в этих случаях вы можете открыть окно используя "var = foo".
If no window locator prefix is provided, we'll try to guess what you
означают следующее:
1.) if windowID is null, (or the string "null") then it is assumed the
пользователь ссылается на оригинал окно, созданное браузером).
2.) if the value of the "windowID" parameter is a JavaScript variable
имя в текущем приложении окна, то предполагается, что это переменная содержит возвращаемое значение от вызова JavaScript window.open().
3.) Otherwise, selenium looks in a hash it maintains that maps string
имена в именах окон.
4.) If that fails, we'll try looping over all of the known windows
чтобы попытаться найти подходящий "заглавие". Поскольку "title" не обязательно уникальные, это может иметь неожиданное поведение.
If you're having trouble figuring out the name of a window that you want
чтобы манипулировать, посмотреть на Селен регистрировать сообщения, которые идентифицируют имена окон, созданных с помощью window.open(и, следовательно, перехватывается Селен). Вы увидите сообщения типа для каждого окна есть следующее: открыто:
debug: window.open call intercepted; window ID (which you can
использование с selectWindow()) является "MyNewWindow"
In some cases, Selenium will be unable to intercept a call to
window.open(если вызов происходит во время или перед событием onLoad, для пример). (Это ошибка SEL-339.) В в этих случаях вы можете заставить Селен обратите внимание на имя открытого окна, используя команда Selenium openWindow, используя пустой (пустой) URL-адрес, например: openWindow ( "," myFunnyWindow").
selectWindow (WindowID)
selectPopup
Если это всплывающее окно, сделайте selectPopUp | windowId
, а затем вернитесь в главное окно selectWindow | null
selectPopUp(windowID)
Аргументы:
- windowID - идентификатор всплывающего окна, который может принимать различные значения
Упрощает процесс выбора всплывающего окна (и не предлагает функциональных возможностей, кроме того, что уже предоставляет selectWindow()).
- Если windowID либо не указан, либо задан как "null", выбрано первое не-верхнее окно. Верхнее окно - это тот, который будет выбран selectWindow() без предоставления идентификатора окна. Это не должно использоваться, когда в игре воспроизводится более одного всплывающего окна.
- В противном случае окно будет просмотрено с учетом windowID следующим образом:
- "Имя" окна, как указано для window.open()
- Переменная JavaScript, которая является ссылкой на окно
- Название окна. Это тот же упорядоченный поиск, выполненный selectWindow
Ответ 2
Попробуйте использовать Selenium Web Driver 2:
driver.switch_to.window(driver.window_handles.last);
Ответ 3
Вы можете сохранить идентификатор случайного окна (сгенерированный Selenium IDE) с помощью команды storeAttribute. Вам просто нужно сохранить идентификатор в переменной, а затем вы можете выбрать окно, используя команду selectWindow.
Попробуйте использовать это:
<tr>
<td>storeAttribute</td>
<td>link=Help [email protected]</td>
<td>window_ID</td>
</tr>
<tr>
<td>selectWindow</td>
<td>${window_ID}</td>
<td></td>
</tr>
Ответ 4
Рассмотрим это: вы бы предпочли просто удалить атрибут target="_blank"
? Для меня это было решением:
getEval
this.page().findElement('link=Facebook').removeAttribute('target');
Пребывание в одном и том же окне имеет некоторые преимущества в Selenium IDE, поскольку оно не поддерживает целевой пробел.