【问题标题】:Can't update chromedriver and seleniumrelease无法更新 chromedriver 和 seleniumrelease
【发布时间】:2015-06-11 13:12:30
【问题描述】:

我尝试使用量角器。所以我跟着一个小教程,我做的第一件事是:

npm install -g protractor

这将安装两个命令行工具,量角器和 webdriver-manager。 但现在我必须更新我的 webdriver-manager:

webdriver-manager update

所以我的 cmd 尝试连接 https://chromedriver.storage.googleapis.com/2.14/chromedriver_win32.ziphttps://selenium-release.storage.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar。 但它会给出这个错误:

C:\Program Files (x86)\Jenkins\workspace\testnew>webdriver-manager update
Updating selenium standalone
downloading https://selenium-release.storage.googleapis.com/2.45/selenium-server
-standalone-2.45.0.jar...
Updating chromedriver
downloading https://chromedriver.storage.googleapis.com/2.14/chromedriver_win32.
zip...
Error: Got error Error: getaddrinfo EAI_AGAIN from https://selenium-release.stor
age.googleapis.com/2.45/selenium-server-standalone-2.45.0.jar
Error: Got error Error: getaddrinfo EAI_AGAIN from https://chromedriver.storage.
googleapis.com/2.14/chromedriver_win32.zip

有时是 EAI_AGAIN 错误,有时是 ENOTFOUND。 但我不明白的是,我可以在浏览器中手动下载 zip 和 jar。当我浏览 URL 时,一切正常。但不在cmd中。有人能帮我吗? PS:无法ping通网址的

更新:代理设置后我收到此错误:

Error: Got error Error: tunneling socket could not be established, cause=socket
hang up from https://chromedriver.storage.googleapis.com/2.14/chromedriver_win32
.zip

【问题讨论】:

    标签: selenium cmd protractor selenium-chromedriver


    【解决方案1】:

    这也发生在我身上。问题是由于我们在公司内部使用的代理造成的。

    webdriver-manager 有一个参数--proxy,您可以在其中指定 webdriver 命令应使用的代理。 您在 nmp 中可能拥有的代理配置(用户目录中的 .npmrc 文件)不适用于 webdriver-manager。

    这是对我有用的示例。

    webdriver-manager --proxy http://yourproxy:8080 update
    

    【讨论】:

      【解决方案2】:

      如果设置代理不起作用,我是怎么回事,你可以从控制台显示的 urls 手动下载文件,并将它们放入 selenium 文件夹中

      Windows中的路径是:

      users\username\AppData\Roaming\npm\node_modules\protractor\selenium

      这对我有用。

      希望对你有帮助

      【讨论】:

      • 也许你也需要下载一些特定的驱动程序
      • 在运行 webdriver-manager 启动后,会导致错误:E/start - Selenium Standalone 不存在。使用 webdriver-manager update --standalone 安装
      【解决方案3】:

      如果您的 webdriver-manager 更新 没有更新 chromedriver,请继续阅读 到最新的。

      我花了几周的时间来解决我遇到的 "Unable to discover open pages" 问题,每次我更新 chromedriver 时,chromedriver 都会更新到 version 2.22,我相信 selenium 服务器会更新到 v2.53。 我的问题并不在于 selenium 服务器,所以 v2.53 很好。

      Issue was with chromedriver v2.22. 
      

      尽管this chromdriver link 显示有最新版本的 2.24,'webdriver-manager update' 不会选择最新版本,它只会获取 chrome 驱动程序的 2.22 版本。

      我是怎么解决这个问题的?

      在查看此链接后,只需运行以下命令即可了解要更新到的 chromedriver 版本;例如,我想要 v2.24,所以我运行了以下命令:

      webdriver-manager 更新 --versions.chrome 2.24

      如果您查看您的位置:C:\Users\<USER>\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\

      您应该会看到所需的 chromedriver 已在那里下载;如果它不存在,请阅读命令提示符日志,它会告诉您它在哪里下载了您的 chromdriver 文件。

      希望对某人有所帮助!

      【讨论】:

        【解决方案4】:

        您的网络浏览器可能正在使用代理,或其他一些对webdriver-manager 脚本未配置为使用的更广泛互联网的间接访问。 (webdriver-manager 支持 --proxy 参数,如果你知道要传递给它的话。)

        如果您可以手动下载文件,只需将它们手动放入 selenium 目录即可。该脚本还会解压缩“chromedriver_win32.zip”以获取其中包含的chromedriver 二进制文件。

        【讨论】:

        • 我怎样才能找到我的代理或者我应该自己配置它?所以你必须使用代理?我的设置说:使用系统中的代理设置。之后我必须这样做吗? npm config 设置代理 http://:port。 HTTP_PROXY=http://'你的http代理ip':'你的代理端口',设置HTTPS_PROXY=http://'你的https代理ip':'你的代理端口'。它适用于一个朋友:谁有设置:手动配置代理(但他从来没有这样做)。我做了和他一样的事情,现在我收到了这个错误:错误:出现错误错误:无法建立隧道套接字,原因=套接字挂断...
        • 配置 HTTP 代理取决于您的网络配置。仅当您的计算机和 Internet 之间存在网络代理时,才需要进行代理配置。我猜由于您遇到的错误,您的网络浏览器可以理解其中一个。同样,如果可以通过网络浏览器下载文件,那可能就足够了。
        猜你喜欢
        • 2017-02-10
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-24
        • 1970-01-01
        相关资源
        最近更新 更多