2013-08-27 23 views
5

Tôi đã tạo một phiên bản Watir::Browser với bộ chrome làm trình duyệt.Watir: lỗi "mở cảnh báo bất ngờ" được ném khi cố gắng làm mới trang sau khi đóng cảnh báo theo cách thủ công

b = Watir::Browser.new :chrome  

Nếu tôi tay đóng một cảnh báo và sau đó cố gắng làm mới trang sử dụng

b.refresh 

lỗi sau được ném:

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' 

Khi tôi gọi b.alert.exists? nó trả true .

Tôi đã thử xem xét sử dụng b.alert.initialize để đặt lại trạng thái cảnh báo nhưng nó đã ném một ngoại lệ.

Có cách nào để đặt lại hoàn toàn trạng thái của đối tượng trình duyệt không?

+0

tương tự ở đây cảnh báo không làm việc ... Tôi đã thử với firefox quá, không có nhiều thành công. b.alert.exists? b.alert.ok Tôi đã thử mọi thứ trên http://watirwebdriver.com/javascript-dialogs/ nhưng không may mắn bạn? – Dakadaka

+0

Tôi chưa bao giờ giải quyết điều này tôi sợ. – Castrohenge

Trả lời

5

tôi đã phải đối mặt với vấn đề này quá:

Nhưng tôi đang thành công thoát khỏi nó bằng cách đặt nó trong một khối begin-rescue.

Sau đây là cách:

begin 
    # put line of code which triggers alert on page 
    rescue Selenium::WebDriver::Error::UnhandledAlertError 
    @browser.alert.ok 
    end 
Các vấn đề liên quan