Selenium :: WebDriver :: Error :: UnhandledAlertError: Ошибка выполнения скрипта.Открытый модальный диалог заблокировал операцию - PullRequest
1 голос
/ 23 февраля 2012

Я заметил кое-что странное. Если я использую Firefox, это прекрасно работает:

require "selenium-webdriver"
# => true 

driver = Selenium::WebDriver.for :firefox
# => #<Selenium::WebDriver::Driver:0x..fc3c6738535bdb898 browser=:firefox> 

driver.execute_script "window.alert('text');"
# => "text" 

Открывается всплывающее окно оповещения.

Если я делаю то же самое с Chrome, открывается всплывающее окно с предупреждением, но я получаю исключение:

driver = Selenium::WebDriver.for :chrome
# => #<Selenium::WebDriver::Driver:0x47f3180ec45394e8 browser=:chrome> 

driver.execute_script "window.alert('text');"
Selenium::WebDriver::Error::UnhandledAlertError: Script execution failed. Script: window.alert('text');;
 An open modal dialog blocked the operation
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:590:in `raw_execute'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:568:in `execute'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/remote/bridge.rb:314:in `executeScript'
    from /Users/zeljko/.rvm/gems/ruby-1.9.2-p290@gretel/gems/selenium-webdriver-2.19.0/lib/selenium/webdriver/common/driver.rb:209:in `execute_script'
    from (irb):14
    from /Users/zeljko/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'

Я что-то здесь не так делаю?

Окружающая среда:

  • Mac OS X 10.7.3
  • Firefox 10.0.2
  • Chrome 17.0.963.56
  • chromedriver_mac_18.0.1022.0
  • Рубиновый рубин 1.9.2p290
  • selenium-webdriver 2.19.0

1 Ответ

0 голосов
/ 24 мая 2012

Попробуйте еще раз, как показано ниже, с помощью хромедривера.Пример для Java:

ChromeDriver driver = new ChromeDriver();

driver.executeAsyncScript("arguments[0](); alert('Hello')");
try {
    Thread.sleep(3000);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
...