Watir 浏览器进程无法正常启动 (Windows)

Watir browser process doesn't start properly (Windows)

我已经在 Linux 中构建了一个简单的脚本,但现在我正试图让它在 windows 上运行。

密码是:

require 'watir-webdriver'
puts "Press enter when ready to continue"
gets
browser = Watir::Browser.start "http://www.google.com"
# do stuff

它在 Ubuntu 上完全符合预期。但是当我在 Windows 上尝试时,Firefox 进程启动,但在你看到 Firefox window 之前就死了。这是 Ruby 在此 Windows 安装上的全新安装,我以前从未在这台机器上使用过它。

可能是什么问题?

编辑:根据要求进行命令行跟踪。

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:90:in `connect_until_stable': unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:55:in `block in launch'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:43:in `locked'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `new'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `for'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver.rb:84:in `for'
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize'
    from bot.rb:8:in `new'
    from bot.rb:8:in `<main>'

那是 Firefox 中的 this bug。您的选择是:

  1. 等待 Firefox 47 中的补丁
  2. 降级到 Firefox 46
  3. 使用 Marionette 而不是 Firefox 驱动程序(该驱动程序已被弃用,很快将无法与新版本的 Firefox 一起使用)
  4. 使用Chrome

要尝试 marionette,请下载 geckodriver 并执行:

browser = Watir::Browser.new :firefox, marionette: true