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

Школа тест-менеджеров v. 2.0
онлайн, начало 16 октября
Школа для начинающих тестировщиков
онлайн, начало 17 октября
Python для начинающих
онлайн, начало 16 октября
Организация автоматизированного тестирования
онлайн, начало 18 октября
Фотография

Переключить фокус на 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 823 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 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 анонимных

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