Окно оповещения в Waitr Webdriver - PullRequest
       17

Окно оповещения в Waitr Webdriver

2 голосов
/ 06 сентября 2010

Я посмотрел здесь: http://wiki.openqa.org/display/WTR/JavaScript+Pop+Ups

Каждое решение для IE на Windows. Я использую Firefox на Mac. Есть ли способ нажать кнопку ОК в окне предупреждения JavaScript?

Ответы [ 2 ]

4 голосов
/ 08 сентября 2010

Надлежащая обработка предупреждений и подсказок все еще работает на в WebDriver, но общий обходной путь заключается в перезаписи оконных функций с помощью execute_script (), т.е.

browser.execute_script("window.alert = function(msg) { window.lastAlert = msg; }")
browser.button(:id => "trigger-alert").click
browser.execute_script("return window.lastAlert") #=> "the message"

Поскольку я хотел бы избежать появления множества патчей обезьян (частая проблема в сообществе Watir), я добавил несколько вспомогательных методов в качестве необязательного требования - после следующего выпуска вы должен уметь делать:

require "watir-webdriver/extensions/alerts"

browser.alert do
  browser.button(:id => "alert").click 
end #=> "the alert message"

browser.confirm(true) do
  browser.button(:id => "confirm").click
end #=> "the confirm message"  

browser.prompt("returned value") do
  browser.button(:id => "prompt").click 
end #=> { :message => "foo", :default => "bar" }

Обратите внимание, что это временно, и API может быть удален в будущем, когда проблема будет решена в WebDriver.

UPDATE:

Введена правильная обработка предупреждений. Приведенный выше пример теперь будет выполнен так:

browser.button(:id => "alert").click
browser.alert.ok

browser.button(:id => "confirm").click
browser.alert.ok # or browser.alert.close

browser.button(:id => "prompt").click
alert = browser.alert
alert.text #=> "foo"
alert.ok
1 голос
/ 08 сентября 2010

Я знаю, что аддон iMacros для Firefox может щелкнуть эти поля предупреждений.Может быть, вы можете совместить это с нашей настройкой?

...