【问题标题】:Unable to launch Chrome on Mac using selenium webdriver无法使用 selenium webdriver 在 Mac 上启动 Chrome
【发布时间】:2014-03-19 12:11:54
【问题描述】:

我想在 MAC Chrome 上运行我的脚本。我执行了以下步骤

  1. http://chromedriver.storage.googleapis.com/index.html下载最新的chrome驱动
  2. 解压后将文件复制到/usr/bin

在 irb 上我执行了以下步骤

require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome

它给出以下错误信息

Net::ReadTimeout: Net::ReadTimeout
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:152:in `rbuf_fill'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:144:in `readline'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1406:in `block in transport_request'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1403:in `catch'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1403:in `transport_request'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1376:in `request'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1369:in `block in request'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:852:in `start'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/http.rb:1367:in `request'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/remote/http/default.rb:83:in `response_for'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/remote/http/default.rb:39:in `request'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/remote/bridge.rb:634:in `raw_execute'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/remote/bridge.rb:99:in `create_session'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/remote/bridge.rb:68:in `initialize'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/chrome/bridge.rb:29:in `initialize'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/common/driver.rb:37:in `new'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver/common/driver.rb:37:in `for'
        from /Users/vertis/.rvm/gems/ruby-1.9.3-p429/gems/selenium-webdriver-2.39.0/lib/selenium/webdriver.rb:67:in `for'
        from (irb):4

【问题讨论】:

  • 您能否提供更多有关您的环境的信息。什么版本的 osx,ruby 版本,chrome 版本和最后一个 chromedriver 的 selenium 版本(我假设是 2.9)。我正在为 selenium 2.9 运行 osx 10.8.5、ruby 2.1.0、chrome 33.0 和 chromedriver 但是我没有看到您遇到的同样问题。
  • MAC OSX 10.9.1、Chrome 33.0、Ruby 2.0.0p247、chromedriver 2.9
  • 好老小牛,今晚我会升级,让你知道我遇到了什么。
  • 我很茫然。即使在今天晚上升级并在今天早上测试您的步骤之后,我也无法重现。很抱歉无法为您提供帮助。

标签: ruby macos google-chrome selenium


【解决方案1】:

下载最新版本的 chromedriver 并将其保存在 usr/local/bin 中并运行您的代码它会起作用,因为同样的事情适用于我....如果您想查看正在运行的版本然后转到您的 chromedriver 并正确单击并使用终端打开。它会向您显示版本,因此请记住您的版本应该是 2.15.XXXXXX

我很确定它对你有用!

【讨论】:

  • 不,它没有。同样的问题,现代版本,没有任何帮助。
最近更新 更多