繁体   English   中英

在 selenium/python/ubuntu 中使用 chromedriver

[英]Using chromedriver with selenium/python/ubuntu

我正在尝试使用 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

按照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。 希望它有帮助。

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

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

    chromedriver: /usr/local/bin/chromedriver

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

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

应该够了!

以下应该正常工作:

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

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

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

> chmod 777 /usr/local/bin/chromedriver

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

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

$ cd
$ chromedriver --version

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

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

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

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

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

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

这在 ubuntu 中对我有用,向 bashrc 添加路径不起作用。 试一试。

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

对于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' 但它存在并被添加到路径和/或错误消息: "'chromedriver' executable need 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 (从在 Mac Chrome 上使用 Selenium获得)返回的内容与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):错误:“chromedriver”无法打开,因为无法验证开发者。无法启动 chrome browser ) 解决了问题, ChromeDriver终于跑起来了。

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

#apt-get install chromium-driver

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

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

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

sudo find / -type f -name chromedriver

然后选择与您的浏览器对应的驱动程序。

PS:对我来说是

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM