将 chromedriver 与 selenium/python/ubuntu 一起使用

Posted

技术标签:

【中文标题】将 chromedriver 与 selenium/python/ubuntu 一起使用【英文标题】:Using chromedriver with 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://***.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 ](***.com/questions/22130109/…) @ShintoJoseph,所以它不尊重 PATH? 【参考方案1】:

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

    安装了 chromium-chromedriver:

    sudo apt-get install chromium-chromedriver
    

    将路径添加到 selenium 行:

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

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

【讨论】:

完美地为我工作【参考方案2】:

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

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

    chromedriver: /usr/local/bin/chromedriver

    复制该路径并编辑您的 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 用户:

    brew install chromedriver。 安装后会弹出==> Linking Binary 'chromedriver' to '/usr/local/bin/chromedriver'。 从现在开始,您应该可以在代码中引用/usr/local/bin/chromedriver。 您可能会遇到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/ 中所述。 又是一个错误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 :) 当我尝试运行脚本时,我遇到的最后一个问题是“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')

【讨论】:

以上是关于将 chromedriver 与 selenium/python/ubuntu 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

selenium 安装与 chromedriver安装

python小技能: 搭建selenium与ChromeDriver环境4Mac

selenium 安装与 chromedriver安装

selenium与chromedriver的操作

Python爬虫教程-27-Selenium Chrome版本与chromedriver兼容版本对照表

selenium:chromedriver与chrome版本的对应关系