解除警报后,ruby – Selenium :: WebDriver :: Error :: Unhandl
发布时间:2020-12-17 03:31:42 所属栏目:百科 来源:网络整理
导读:我们有一个Cucumber场景,如下所示: @selenium Scenario: I can be told that geolocation is unavailable # features/home_page.feature:57 Given I am a visitor # features/step_definitions/authentication_steps.rb:5 When I visit the homepage # feat
我们有一个Cucumber场景,如下所示:
@selenium Scenario: I can be told that geolocation is unavailable # features/home_page.feature:57 Given I am a visitor # features/step_definitions/authentication_steps.rb:5 When I visit the homepage # features/step_definitions/home_page_steps.rb:1 And I have declined geolocation permissions # features/step_definitions/home_page_steps.rb:14 And I click the geolocate button # features/step_definitions/home_page_steps.rb:18 Then I see an alert "Unable to determine your current location. Please type an address instead." # features/step_definitions/web_steps.rb:104 我看到警报“(.?)”的步骤定义为: Then(/^I see an alert "(.+?)"$/) do |content| page.driver.browser.switch_to.alert.text.should == content page.driver.browser.switch_to.alert.dismiss end 出于某种原因,驳回此警报是不够的.行中的下一个场景总是失败: Modal dialog present (Selenium::WebDriver::Error::UnhandledAlertError) [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/command_processor.js:10521:in `nsCommandProcessor.execute' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/driver_component.js:7510:in `Dispatcher.executeAs/<' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/driver_component.js:7668:in `Resource.handle' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/driver_component.js:7615:in `Dispatcher.dispatch' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/driver_component.js:10336:in `WebDriverServer/<.handle' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/httpd.js:1935:in `unknown' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/httpd.js:2261:in `ServerHandler.handleResponse' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/httpd.js:1168:in `Connection.process' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/httpd.js:1616:in `RequestReader._handleResponse' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/httpd.js:1464:in `RequestReader._processBody' [remote server] file:///var/folders/x6/4vcz8vmj5ls2dbc9b3x2qxvh0000gp/T/webdriver-profile20130927-61014-emm2oz/extensions/fxdriver@googlecode.com/components/httpd.js:1333:in `RequestReader.onInputStreamReady' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/response.rb:51:in `assert_ok' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/default.rb:66:in `request' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:629:in `raw_execute' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:607:in `execute' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/remote/bridge.rb:356:in `deleteAllCookies' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/options.rb:67:in `delete_all_cookies' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/capybara-2.0.3/lib/capybara/selenium/driver.rb:67:in `reset!' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/capybara-2.0.3/lib/capybara/session.rb:75:in `reset!' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/capybara-2.0.3/lib/capybara.rb:253:in `block in reset_sessions!' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/capybara-2.0.3/lib/capybara.rb:253:in `each' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/capybara-2.0.3/lib/capybara.rb:253:in `reset_sessions!' /Users/ccashwell/.rvm/gems/ruby-1.9.3-p194@geostellar/gems/capybara-2.0.3/lib/capybara/cucumber.rb:10:in `Before' 我们尝试升级selenium-webdriver和capybara无济于事.到目前为止唯一有效的方法是复制消除线,感觉很粗但总是摆脱对话.肯定只有一个对话框,所以给出了什么? 解决方法
你应该尝试使用.accept而不是.dismiss.我在这些弹出窗口上使用.accept的运气好了.然后.dismiss.所以你要尝试的全线是
page.driver.browser.switch_to.alert.accept (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |