我已经在 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 窗口之前就终止了。这是在 Windows 安装上全新安装的 Ruby,我以前从未在这台机器上使用过它。
可能是什么问题呢?
编辑:根据要求进行命令行跟踪。
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>'
That's this bug https://github.com/SeleniumHQ/selenium/issues/2110在火狐浏览器中。您的选择是:
- 等待 Firefox 47 的补丁
- 降级到 Firefox 46
- 使用 Marionette 代替 Firefox 驱动程序(该驱动程序已被弃用,并且很快将无法与新版本的 Firefox 兼容)
- 使用 Chrome
要尝试 Marionette,请下载壁虎司机 https://github.com/mozilla/geckodriver/releases and do:
browser = Watir::Browser.new :firefox, marionette: true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)