【问题标题】:Using chromedriver with selenium/python/ubuntu将 chromedriver 与 selenium/python/ubuntu 一起使用
【发布时间】:2014-04-23 22:36:19
【问题描述】:

我正在尝试使用 chromedriver 执行一些测试,并尝试使用以下方法启动 chromedriver。

driver = webdriver.Chrome('/usr/local/bin/chromedriver')

driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')

import os
from selenium import webdriver

chromedriver = "/usr/local/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")

但这些似乎都没有帮助,错误是:selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.

我已经检查了多次,chromedriver 出现在位置 /usr/local/bin

我的脚本仍然无法正常工作。任何人都可以帮忙。

我的 google-chrome 位置是:/usr/bin/google-chrome

【问题讨论】:

  • 确保 chromedriver 二进制文件在提供的路径中可用,而不是包含 chromedriver.exe 的目录
  • 这是二进制文件的位置,而不是目录。 @阿米特
  • 我已经在另一个问题中回答了selenium/python/ubuntu
  • 对于 Debian/Ubuntu - 它可以工作:参见下面的链接 [chrome-webdriver for selenium/python/ubuntu ](stackoverflow.com/questions/22130109/…)
  • @ShintoJoseph,所以它不尊重 PATH?

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

按照https://askubuntu.com/questions/539498/where-does-chromedriver-install-to 的建议,我能够使它像这样工作:

  1. 安装了 chromium-chromedriver:

    sudo apt-get install chromium-chromedriver
    
  2. 将路径添加到 selenium 行:

    driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
    

请注意,这会打开 Chromium 而不是 Chrome。希望对您有所帮助。

【讨论】:

  • 完美地为我工作
【解决方案2】:

我已经通过以下方式解决了这个问题:

  1. 打开终端并输入whereis chromedriver。就我而言,我有以下输出:

    chromedriver: /usr/local/bin/chromedriver

  2. 复制该路径并编辑您的 Webdriver 实例,如:

driver = webdriver.Chrome('/usr/local/bin/chromedriver')

应该够了!

【讨论】:

    【解决方案3】:

    以下应该正常工作:

    driver = webdriver.Chrome(executable_path='/usr/local/bin/chromedriver')
    

    请注意,在您的问题中,路径中没有前面的“/”。

    此外,请确保位于 /usr/local/bin/ 的 chromedriver 可执行文件具有适当的文件权限,即可以执行:

    > chmod 777 /usr/local/bin/chromedriver
    

    【讨论】:

    • 我已将 chmod 更改为 777 并且已经使用了前面的 '/' [已编辑]。还是同样的错误。 @Tytus
    • 这种方法对我有用。以上所有方法都不能单独工作....我首先需要更改权限,然后executable_path 工作。
    【解决方案4】:

    如消息所述:ChromeDriver 可执行文件需要在路径中可用。

    那么它在路径中吗?输出是什么:

    $ cd
    $ chromedriver --version
    

    如果您没有看到版本,chromedriver 肯定不在 PATH 中。

    否则我不会告诉 webdriver 在哪里可以找到chromedriver。 – 我使用 Ubuntu 软件包“chromium-chromedriver”,但它会将二进制文件放在/usr/lib/chromium-browser/chromedriver 中,这不在我的 PATH 中。所以我在/usr/bin放了一个软链接。

    【讨论】:

      【解决方案5】:

      您需要确保独立的 ChromeDriver 二进制文件在您的路径中或在 webdriver.chrome.driver 环境变量中可用,然后尝试使用该二进制文件的绝对路径。 下面是java的代码 -

          File chromeDriver = new File("/usr/bin/chromedriver");
          System.setProperty("webdriver.chrome.driver", chromeDriver.getAbsolutePath());
          driver = new ChromeDriver();
      

      【讨论】:

        【解决方案6】:

        只需将二进制位置作为参数传递给它,而不仅仅是包含它的目录。因此,如果它位于 /usr/bin 目录中,则运行以下命令:

        driver = webdriver.Chrome("/usr/bin/chromedriver")
        

        这在 ubuntu 中对我有用,添加到 bashrc 的路径不起作用。试试看吧。

        【讨论】:

          【解决方案7】:

          希望这对喜欢我的人有用。 对于我的情况,我在路径中留下了前面的斜杠做了“home/user/chromedriver”而不是“/home/user/chromedriver”

          【讨论】:

            【解决方案8】:

            Mac 用户:

            1. brew install chromedriver
            2. 安装后会弹出==> Linking Binary 'chromedriver' to '/usr/local/bin/chromedriver'
            3. 从现在开始,您应该可以在代码中引用/usr/local/bin/chromedriver
            4. 您可能会遇到Selenium Python: No such file or directory: '/usr/local/bin/chromedriver' but it exists and is added to path 和/或Error message: "'chromedriver' executable needs to be available in the path"。这是因为brew install cask 也是必需的,如https://www.kenst.com/2015/03/installing-chromedriver-on-mac-osx/ 中所述。
            5. 又是一个错误FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/bin/chromedriver'?试试brew reinstall chromedriver,这是brew reinstall chromedriver(来自Using Selenium on Mac Chrome)第一次返回与chromedriver not found不同的东西。即/usr/local/bin/chromedriver :)
            6. 当我尝试运行脚本时,我遇到的最后一个问题是“chromedriver” cannot be opened because the developer cannot be verified. 弹出窗口。 cd /usr/local/bin,然后xattr -d com.apple.quarantine chromedriver(学分:MacOS Catalina(v 10.15.3): Error: “chromedriver” cannot be opened because the developer cannot be verified. Unable to launch the chrome browser)解决了问题,ChromeDriver终于跑了。

            【讨论】:

              【解决方案9】:

              很可能您还没有完成 chrome 驱动程序的安装。我建议您使用 apt 安装它,因为 apt 会自行安装所有依赖项。 其他答案是正确的;但在安装“铬浏览器”的最后一个版本中。但现在这个名字改为“chromium-driver”。所以你应该安装这个:

              apt-get install chromium-driver
              

              此驱动程序将安装在 /usr/bin 中,此名称将是“chromedriver” 因此对于 selenium 的导入路径,请使用以下路径:/usr/bin/chromedriver:

              driver = webdriver.Chrome('/usr/bin/chromedriver')
              

              【讨论】:

              • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
              【解决方案10】:

              指出您机器上的 Chrome 浏览器驱动程序就足够了。 如果您已经安装了 Chromium 浏览器,请搜索驱动程序:

              sudo find / -type f -name chromedriver
              

              然后选择你的浏览器对应的驱动。

              PS:对我来说是

              driver = webdriver.Chrome('/snap/chromium/1827/usr/lib/chromium-browser/chromedriver')
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2016-05-01
                • 2012-03-21
                • 1970-01-01
                • 2023-03-24
                • 2013-06-15
                • 2021-03-30
                • 2018-11-25
                • 2013-09-09
                相关资源
                最近更新 更多