我正在尝试使用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的建议,我能够让它像这样工作:
sudo apt-get install chromium-chromedriver
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
请注意,这会打开Chromium而不是Chrome。希望它有所帮助。
我已通过以下方式解决了这个问题:
whereis chromedriver
。就我而言,我有以下输出:
chromedriver: /usr/local/bin/chromedriver
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”