我正在尝试使用 python 3 从 WSL2 (Ubuntu 18.04) 无头打开 Chrome。
在 Windows 上,我使用的是 Chrome 84。我已经从 ChromeDriver - WebDriver for Chrome 下载了 Chrome Driver 84。并在 C:\ChromeDriver\chromedriver.exe 下安装了 .exe
我已经设置了从我的 Windows Chrome 和 ChromeDriver 到 WSL2 的符号链接:
sudo ln -s '/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe' /usr/bin/google-chrome
sudo ln -s /mnt/c/ChromeDriver/chromedriver.exe /usr/bin/chromedriver
两个 Chrome 都设置为可由 WSL2 上的任何用户执行。
在 WSL2 上,当我在控制台中输入时:
google-chrome --use-gl=swiftshader
Chrome 在 Windows 上启动。
这是我的脚本:
from selenium import webdriver
browser = webdriver.Chrome() # fails
# browser = webdriver.Chrome('/usr/bin/chromedriver') fails
# browser = webdriver.Chrome('/mnt/c/ChromeDriver/chromedriver.exe') fails
browser.get('https://stackoverflow.com')
它失败并出现错误:
raise WebDriverException(“Can not connect to the Service %s” % self.path) selenium.common.exceptions.WebDriverException: 消息:无法连接到服务 chromedriver (* OR /usr/bin/chromedriver OR /mnt/c/ ChromeDriver/chromedriver.exe 取决于我如何启动 webdriver.Chrome())
如何能够使用 python3 和 selenium 从 WSL2 启动 Chrome 驱动程序?
原文由 Ñhosko 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于那些还没有找到解决方案的人。按照这个教程: WSL2 中的 chromedriver 很多都是相似的,但对我来说有用的是将 chromedriver 放在相应的组和用户中: