2013-08-27 7 views
5

Watir::Browserのインスタンスをブラウザとしてクロムを設定して作成しました。Watir:アラートを手動で閉じた後にページを更新しようとすると「予期しないアラートが開く」エラーが発生する

b = Watir::Browser.new :chrome  

私はが警告を閉じてから、次のエラーがスローされ

b.refresh 

を使用してページを更新しようと手動の場合:私はb.alert.exists?を呼び出すとき

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' 

それは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 
関連する問題