Подтвердить что ты не робот

Как вы фокусируетесь на новых окнах с селеном ide?

Я пытаюсь использовать selenium ide для дублирования действия. Действие - это щелчок по ссылке, открывающей новое окно. Как вы делаете ориентацию селена на новое окно, а не на другое? Это не работает для меня.

4b9b3361

Ответ 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, поскольку оно не поддерживает целевой пробел.