[英]Selenium Python/Django: using it with chromedriver on ubuntu
[英]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的建议,我能够让它像这样工作:
安装了chromium-chromedriver:
sudo apt-get install chromium-chromedriver
将路径添加到 selenium 行:
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
请注意,这会打开 Chromium 而不是 Chrome。 希望它有帮助。
我已经通过以下方式解决了这个问题:
打开终端并输入whereis chromedriver
。 就我而言,我有以下输出:
chromedriver: /usr/local/bin/chromedriver
复制该路径并编辑您的 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
用户:
brew install chromedriver
。==> Linking Binary 'chromedriver' to '/usr/local/bin/chromedriver'
将弹出。/usr/local/bin/chromedriver
。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
(从在 Mac Chrome 上使用 Selenium获得)返回的内容与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):错误:“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.