В процессе создания автоматических тестов часто возникает необходимость в навигации между окнами браузера.
Основное неудобство в построении шага заключается в том, что web-драйверы webkit и selenium отличные друг от друга механизмы переключения между окнами - то, что работает для webkit, не будет работать с selenium, и наоборот.
Следующий шаг позволит вам переместить фокус действия с одного окна на другое, учитывая используемый web-драйвер.
When (/^I access the new window$/) do if Capybara.javascript_driver == :webkit page.driver.browser.window_focus(page.driver.browser.window_handles.last) else page.driver.browser.switch_to.window(page.driver.browser.window_handles.last) end end
В ходе выполнения теста мы производим шаг, в следствие которого появляется новое окно.
Следующим шагом станет описанный выше шаг "I access the new window".
В зависимости от выбранного при запуске теста web-драйвере выполнится один из вариантов переключения фокуса.
Для драйвера webkit - переключение фокуса происходит при помощи действия:
page.driver.browser.window_focus(page.driver.browser.window_handles.last)
Для драйвера selenium - следующее действие:
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)
Комментариев нет:
Отправить комментарий