2013-08-27 60 views
5

我創建了一個Watir::Browser實例,其中chrome設置爲瀏覽器。Watir:在手動關閉警報後嘗試刷新頁面時出現「意外警報打開」錯誤

b = Watir::Browser.new :chrome  

如果我手動關閉警報,然後嘗試刷新使用

b.refresh 

以下錯誤頁面被拋出:

Selenium::WebDriver::Error::UnhandledAlertError: unexpected alert open 
    (Session info: chrome=28.0.1500.95) 
    (Driver info: chromedriver=2.2,platform=Windows NT 6.1 x86_64) 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/response.rb:51:in  assert_ok' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/response.rb:15:in  initialize' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/http/common.rb:59:in  new' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/http/common.rb:59:in  create_response' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/http/default.rb:66:in  request' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/http/common.rb:40:in  call' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/bridge.rb:634:in  raw_execute' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/bridge.rb:612:in  execute' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/remote/bridge.rb:210:in  refresh' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/common/navigation.rb:38:in  refresh' 
     from C:/ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.4/lib/watir-webdriver/browser.rb:201:in  refresh' 

當我打電話b.alert.exists?它返回true

我試着看着使用b.alert.initialize來重置警報的狀態,但它引發了一個異常。

有沒有辦法完全重置瀏覽器對象的狀態?

+0

同樣在這裏警示不能正常工作......我與Firefox嘗試過,沒有太大的成功。 b.alert.exists? b.alert.ok我試過http://watirwebdriver.com/javascript-dialogs/上的所有內容,但沒有運氣嗎? – Dakadaka

+0

我從來沒有解決這個恐怕。 – Castrohenge

回答

5

我面臨這個問題太:

但我順利拿到,將其置於一個begin-rescue塊擺脫它。

方法如下:

begin 
    # put line of code which triggers alert on page 
    rescue Selenium::WebDriver::Error::UnhandledAlertError 
    @browser.alert.ok 
    end