Перейти к содержимому

Автоматизатор мобильных приложений
онлайн, начало 11 августа
Тестирование безопасности
онлайн, начало 11 августа
Тестирование мобильных приложений
онлайн, начало 11 августа
Автоматизация тестирования REST API на Python
онлайн, начало 11 августа
Фотография

Chrome open page in new window instead of new Tab


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Vad1m198

Vad1m198

    Активный участник

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Вадим


Отправлено 09 сентября 2015 - 13:35

Собственно проблема.

Есть страница на которой есть линка которая открывает новую вкладку. Насколько мне известно Selenium сам по дефолту должен отключать возможность открывать новые окна в новой вкладке.

Во ФФ открывается новое окно и тест проходит нормально, а в хроме открывается новая вкладка.

Кто-то сталктвался с такой проблемой? Как ее решить?


  • 0

#2 mazik7

mazik7

    Новый участник

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мазик
  • Город:Красноярск

Отправлено 10 сентября 2015 - 02:57

Собсно между вкладкой и окном разница не большая - и к вкладке и к окну можно обратиться с помощью экземпляра драйвера. Вопрос в другом: какие действия вам необходимо совершить с данной вкладкой или окном?
Работать с окнами можно через handles, и, если вы знаете какой handle к какому окну принадлежит, то можно спокойно этими окнами управлять.

Вот пример из проекта: идет работа на почтовом клиенте, был произведен клик по ссылке и открылась новая вкладка, однако driver работает со старой.

Наши действия: получаем handle текущей вкладки, в списке handle'ов ищем отличную от текущей, закрываем текущую и переключаемся на новую.

string currentWindowHandle = driver.CurrentWindowHandle;
string targetWindowHandle = "";
foreach (string handle in driver.WindowHandles)
{
     if (handle != currentWindowHandle)
     targetWindowHandle = handle;
}
driver.Close();
driver.SwitchTo().Window(targetWindowHandle);

Надеюсь пример поможет.

Если нужно работать со старой вкладкой и нужно чтобы она была видна, попробуйте горячими клавишами переключиться на нее)


  • 0

:smile:


#3 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 10 сентября 2015 - 11:28

не знаю правильно ли, но я беру ссылку и открываю её, а не кликаю. Таким образом вкладка всего одна и тест нормально проходит.


  • 0

#4 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 10 сентября 2015 - 11:47

не знаю правильно ли, но я беру ссылку и открываю её, а не кликаю. Таким образом вкладка всего одна и тест нормально проходит.

Боюсь огорчить, страница может открываться не только по нажатию на ссылку) Но, например, и при нажатию на кнопку с POST запросом) и тогда получение ссылки не проканает...


  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#5 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 11 сентября 2015 - 09:03

ну да, но у меня канает :victory:


  • 0

#6 vkazar

vkazar

    Активный участник

  • Members
  • PipPip
  • 128 сообщений
  • ФИО:Виктор
  • Город:Москва

Отправлено 11 сентября 2015 - 09:28

а мне пришлось изгаляться :(
 

        public CalculateOrderPage ReloadPage()
        {
            Driver.Navigate().GoToUrl(Driver.Url);
            return this;
        }

  • 0

Тестировщик должен быть умнее программиста... ну, по крайней мере, хитрее. ©


#7 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 854 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 11 сентября 2015 - 13:42

При использовании ChromeDriver каждая вкладка имеет handle, поэтому вкладки как бы поддерживаются. Другое дело, что Selenium вообще не различает -- вкладка это или действительно новое окно. Правильно даже так сказать -- это вкладка в том же самом окне или в каком-то другом.

 

В текущей версии FirefoxDriver вкладки просто не распознаются, только окна.

 

Но в постепенно появляющейся новой версии, которая называется MarionetteDriver -- там будет как в хроме, вкладки будут считаться "окнами", у них будут отдельные handle.


  • 1

Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium



Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале