Watir Webdriver(0.9.1)不再打开Firefox实例

and*_*ams 2 firefox ruby-on-rails watir-webdriver selenium-webdriver

使用Watir Webdriver v0.9.1 for rails(以及Selenium Webdriver 2.53.1)时,Firefox正在打开时

  browser = Watir::Browser.new :firefox
Run Code Online (Sandbox Code Playgroud)

被称为.然而,现在它失败了

unable to bind to locking port 7054 within 45 seconds
    @ /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:59:in `lock'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:40:in `locked'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `new'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `for'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver.rb:84:in `for'
      /Users/andmcadams/.rvm/gems/ruby-2.0.0-p648/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize'
      test/integration/like_fanpage_task_test.rb:40:in `new'
      test/integration/like_fanpage_task_test.rb:40:in `block (2 levels) in <class:LikeFanpageTaskTest>'
Run Code Online (Sandbox Code Playgroud)

它似乎随机地这样做,因为我没有从其工作形式更改代码,并且该行是第一行调用.我有Firefox 37.0.2,之前有效.我已经尝试重新启动计算机,杀死与ruby和Firefox相关的进程并重新启动它们,并重新安装Firefox但无济于事.

Mob*_*ers 5

Mozilla推出了一个新的webdriver,由于firefox 47中的一个bug,只有新的webdriver适用于firefox.但是我会建议永久切换到新的webdriver,因为firefox 48将完全删除支持.

您可以使用以下命令在ruby中使用新的webdriver:

driver = Selenium::WebDriver.for :firefox, marionette: true
Run Code Online (Sandbox Code Playgroud)

但我不知道这是否会使你能够在watir中使用它.

至于我可以告诉marionette(新驱动程序)支持还没有在watir中完成(我可能是错的),我看到这个 pull请求正在处理它但它没有完成或合并.

它看起来像你可以这样做:

browser = Watir::Browser.new :marionette
Run Code Online (Sandbox Code Playgroud)

当watir项目完成集成新驱动程序时.