使用chromedriver和selenium / python / ubuntu

问题描述 投票:22回答:7

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

python selenium selenium-webdriver selenium-chromedriver
7个回答
36
投票

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

  1. 安装了铬铬合金: sudo apt-get install chromium-chromedriver
  2. 添加到selenium行的路径: driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")

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


4
投票

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

  1. 打开终端并输入whereis chromedriver。就我而言,我有以下输出: chromedriver: /usr/local/bin/chromedriver
  2. 复制该路径并编辑您的Webdriver实例,如:
driver = webdriver.Chrome('/usr/local/bin/chromedriver')

那应该够了!


1
投票

以下应该通常工作:

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

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

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

> chmod 777 /usr/local/bin/chromedriver

1
投票

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

它在路上也是如此?输出是什么:

$ cd
$ chromedriver --version

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

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


0
投票

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

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

0
投票

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

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.