WebDriverException: 在使用Python中的Selenium时,对于旧版本的Google Chrome,出现了未知错误:无法找到Chrome二进制文件。

46
为了兼容性的原因,我更喜欢使用Chrome版本55.0.2883.75和Chromedriver版本2.26。我从https://www.slimjet.com/chrome/google-chrome-old-version.php下载了旧版本的Chrome,并从https://chromedriver.storage.googleapis.com/index.html?path=2.26/下载了Chromedriver 2.26。
我正在尝试使用以下代码来设置我的Chrome二进制文件位置:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = "C:\\Program Files\\Chrome\\chrome64_55.0.2883.75\\chrome.exe"
driver = webdriver.Chrome('chromedriver.exe', chrome_options = options)

然而,当我尝试启动WebDriver Python时,返回以下错误:
WebDriverException: unknown error: cannot find Chrome binary
(Driver info: chromedriver=2.26.436362
(5476ec6bf7ccbada1734a0cdec7d570bb042aa30),platform=Windows NT 10.0.14393 x86_64)

我已经尝试过搜索类似的问题和答案,但到目前为止还没有任何运气。

请尝试使用单斜杠代替双反斜杠。 - Sasha
谢谢,但是单斜杠和双斜杠都会返回上述相同的错误。 - Venetian
12个回答

86

这个错误信息...

WebDriverException: unknown error: cannot find Chrome binary

这意味着ChromeDriver无法在您系统的默认位置找到Chrome二进制文件。

根据ChromeDriver - Requirements

服务器期望您在每个系统的默认位置安装Chrome:

操作系统 Chrome 期望的安装位置
Linux /usr/bin/google-chrome1
Mac /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
Windows XP %HOMEPATH%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe
Windows Vista及更高版本 C:\Users%USERNAME%\AppData\Local\Google\Chrome\Application\chrome.exe

1 对于Linux系统,ChromeDriver期望/usr/bin/google-chrome是指向实际Chrome二进制文件的符号链接。


在非标准位置使用Chrome可执行文件

但是,您也可以按以下方式覆盖默认的Chrome二进制文件位置

要通过ChromeDriver v2.26在非标准位置使用安装了Chrome 55.x的Chrome, 您可以使用以下代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = "C:\\Program Files\\Chrome\\chrome64_55.0.2883.75\\chrome.exe"
driver = webdriver.Chrome(chrome_options = options, executable_path=r'C:\path\to\chromedriver.exe')
driver.get('http://google.com/')
print("Chrome Browser Invoked")
driver.quit()

相关文档


参考文献

您可以在以下链接中找到详细的讨论:


1
这个可行,谢谢。为了以后参考,我把Chrome和Chromedriver可执行文件放在同一个目录下。 - Venetian
1
在哪里可以下载Linux版本的Chrome二进制文件? - Nhân Nguyễn
2
Windows 10怎么样?在显示Vista的路径中,名为“chrome.exe”的链接无法正常工作。 - Raketenolli
更新2019:使用options=options而不是chrome_options=options。 - dtar
我读到另一个评论说我可能需要安装Chrome本身,而不仅仅是在我的Chromebook上的selenium包装器'chromedriver' - .so。所以我最终设法运行了以下命令来安装我的Chrome可执行文件,然后事情就正常了。想到在Chromebook上(重新?)安装Chrome很奇怪,但是Linux虚拟机似乎找不到它。也许我只是不知道该去哪里找。`> sudo dpkg -i google-chrome-stable_current_amd64.deb` - Peter Smith
可能是版本问题,但在我的系统上,该设置为 options.BinaryLocation - Steve Smith

4
我发生的问题是我没有安装主流浏览器Chrome。 下载此浏览器即可解决此问题。

我希望能够在面板上切换到自己的CefSharp嵌入,而不是安装的Chrome。 - gumuruh
2
哦,谢谢。我一直在使用勇敢浏览器,以为“这就是Chrome”,但实际上不是。下载真正的Chrome解决了问题。谢谢。 - saadlulu

3
使用旧版本的chrome driver和最新版本的Google Chrome在本地运行时会出现相同的异常。
只需访问ChromeDriver页面,确保您拥有最新版本即可。

3
在Mac上,有一个新的错误导致即使Chrome安装在默认位置也会出现相同的错误。这是因为新的chromedriver正在寻找“Google Chrome for Testing.app”而不是默认位置。
我做了以下操作:
mkdir foo
cd foo
npx @puppeteer/browsers install chrome@stable
mv chrome/mac-115.0.5790.102/chrome-mac-x64/Google\ Chrome\ for\ Testing.app /Applications
rm -rf chrome

1
我遇到了这个错误,因为我使用flatpak安装了Chrome,然后Selenium找不到驱动程序的目录。然后我使用Fedora Store安装了Chrome并解决了问题。

1

我通过安装Google Chrome link 来解决了这个问题(我使用的是Kali Linux),它自动解决了问题,并确保它被安装到 "/usr/bin" (默认情况下它会下载到这里)。


虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅链接的答案可能会失效。-【来自审查】 - Ethan

1

我在MacOS上遇到了类似的问题。即使在chromeoptions中设置了二进制路径,它仍然无法正常工作。安装npm i chromedriver后问题得到解决。


1

从官方网站下载Chrome也是非常重要的。我遇到了同样的问题,但是我是从Ubuntu软件包管理器下载的Chrome。我卸载了软件包管理器版本并从官网重新安装,问题就解决了。从其他软件包管理器安装可能会出现相同的问题。


0

我这样做是为了解决我的问题

private WebDriver driver;

@Before
public void StartBrowser() {

System.setProperty("webdriver.chrome.driver", "C://opt//WebDriver//bin//chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.saucedemo.com/");}

0

那是用于webdriver二进制文件的路径,对吗?我想我需要的是如何正确指定Chrome二进制文件。 - Venetian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接