t.me/atinfo_chat Telegram группа по автоматизации тестирования

открытие нового окна\табы средствами Web Driver

Всем привет!

Тест кейс подразумевает открытие второго окна браузера.

Подскажите, как это сделать.

Поддерживаемые браузеры Firefox, Chrome

Про табы: The Selenium WebDriver API does not support managing tabs within the browser at present. Это нормальными способами. "Ненормальные" также по ссылке.

Про окна: Создавайте новый экземпляр драйвера (=браузера), так же, как вы создаете основной, и используйте на здоровье. Или я что-то не понимаю?

Про окна: Создавайте новый экземпляр драйвера (=браузера), так же, как вы создаете основной, и используйте на здоровье. Или я что-то не понимаю?

мне нужно работать с двумя окнами сразу, поэтому тут нужен один инстанс драйвера

после более продолжительного гугления нашла вот такой способ на C#

JavaScriptExecutor js = (IJavaScriptExecutor) CurrentTest.Driver;
           js.ExecuteScript("window.open('http://ya.ru')");

           var allheaders = CurrentTest.Driver.WindowHandles;
           CurrentTest.Driver.SwitchTo().Window(allheaders[1]);

для меня работает

 

вот ссылка на статью http://automated-testing.info/knowledgebase/article/webdriver-features-robota-s-neskolkimi-oknami-vkladkami-odnovremenno-pri

спасибо, нашла в другом мете)

И в продолжение.

А как быть если такой код (С#):

var allWindows = _driver.WindowHandles;
_driver.SwitchTo().Window(allWindows[1]); //

Отлично работает в ФФ и Хроме, а в "дорогом и любимом" ИЕ-9 коллекция "allWindows" упорно возвращает только один елемент, т.е. второго окна не видит (как с сусликом).

Абсолютно идиотское решение:

var allWindows = _driver.WindowHandles;
var afterPopup = _driver.WindowHandles;

Именно так две одинаковые коллекции с разными именами, одна за другой. В первой 1 элемент во второй уже 2. Ожидания тут ни при чем. Проверял.