将 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 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
python小技能: 搭建selenium与ChromeDriver环境4Mac