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

Организация автоматизированного тестирования
онлайн, начало 28 июня
Школа Тест-Аналитика
онлайн, начало 26 июня
SQL для тестировщиков
онлайн, начало 8 июля
Selenium WebDriver: полное руководство
онлайн, начало 28 июня
Фотография

Переключить фокус на popup window/ получить handle?

webdriverio selenium popup window javascript focus

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

#1 El12305

El12305

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

  • Members
  • Pip
  • 1 сообщений

Отправлено 16 Ноябрь 2014 - 05:31

Здравствуйте, уважаемые форумчане!

 

Я совсем-совсем новичок в автоматизированном тестировании, и JS для меня тоже в новинку. Тем не менее сейчас активно изучаю эту область знаний. 

В процессе работы возник затык следующего плана. 

 

Пишу проверку восстановления пароля. По умолчанию открыто основное окно браузера(1), в процессе проверки пишу команду .newWindow чтобы открыть второе окно(2) для логина в почту. В почте соответственно открываю нужное письмо, жму на ссылку и селениум открывает popup window (3) которое находится не в фокусе. Фокус по-прежнему висит на окне(2). Задача - переключиться на окно№3 и дальше совершать в нем уже остальные действия. 
 
В работе используется WebdriverIO http://webdriver.io/
 
Предполагаю, что возможно выполнить эту задачу через команду .switchTab http://webdriver.io/.../switchTab.html но для этого мне нужно знать handle окна №3. Вот тут как раз и затык. То есть я понимаю, как получить хэндлы всех трех страниц, но как вычленить именно хэндл №3 и применить его к switchTab - я не знаю. 
 
вот кусок кода: 
 
//открываем письмо восстановления пароля (в этой части уже открыты два окна №1 и №2)
  it('should open email', function(done) {
    client
      .pause(2000)
      .clickAndWait('[title="Восстановление пароля"]', 4000)
      .clickAndWait('[title="Восстановить пароль"]', 7000) // вот тут уже открывается popup window
      .pause(2000)
      //.assertText('.form__title', 'Восстановление пароля', 'password restore page is open')
      //.setValue('.form__row > #password', '123123')
      .pause(3000)
      .call(done);
  });

 

 

Заранее благодарю всех откликнувшихся. 


  • 0

#2 barancev

barancev

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

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


Отправлено 16 Ноябрь 2014 - 10:49

Надо сделать так:

1) получить список хэндлов ДО клика

2) кликнуть, открывается новое окно

3) подождать, пока список хэндлов изменится -- вот новый появившийся и будет хэндлом открывшегося окна


  • 0

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



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




Темы с аналогичным тегами webdriverio, selenium, popup, window, javascript, focus

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

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

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