Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Пути переключения между окнами

webdriver
Теги: #<Tag:0x00007f7b62711f30>

(Roy Obenon) #1

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

  1. загонять окно в переменную с помощью driver.getWindowHandle(); и потом удалять её собрав весь лист с помощью driver.getWindowHandles();
  2. создавать 2 листа сначала с 1 окном, потом с другим, удаляя первый лист со второго, в итоге остается второе окно.
  3. создавать переменную или лист и через итератор прогнать (удаляя или перегоняя в другую переменную чтобы обозначить где какое окно)

Собственно одно и тоже только разные методы реализации. Или у вас другие варианты?


(Александр Таранков) #2

Решения описал, а задача-то какая?


(Roy Obenon) #3

вообще существующие пути переходов


(Игорь Артемов) #4
((JavascriptExecutor) driver)
        .executeScript("window.open(arguments[0])", url); 

Самый надежный, можешь в метод обернуть.

открывает новые окно , можешь открыть сколько хочешь окон, не накаждом браузере это именно окно, на мозиле окно, в опере вкладка и прыгай по окнам делай что надо, в качестве url может быть и string как вариант, не забудь каждое окно пообзывать это обязательное требование и все… делай с окнами что надо


(Roy Obenon) #5

Получается перепрыгивать можно только зная url?
arguments[0] - это массив чего?


(Stan) #6

Это псевдо массив (у него кроме .length и формы записи нет ничего от массивов) переданных в функцию значений, в данном случае туда передается “url”.