如何在wsl2上从python3运行Selenium ChromeDriver?

我正在尝试使用Python3从WSL2(Ubuntu18.04)无头打开Chrome

在Windows上,我使用的是Chrome84。我已经从ChromeDriver-WebDriver下载了Chrome驱动程序84。并将.exe安装在C:\ChromeDriver\ChromeDriver.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

这两个色度都设置为可由WSL2上的任何用户执行

在WSL2上,当我在控制台中输入时:

谷歌浏览器——使用gl=swiftshader

Chrome在windows上启动

这是我的剧本:

来自selenium import webdriver的


browser=webdriver.Chrome()#失败
#browser=webdriver.Chrome('/usr/bin/chromedriver')失败
#browser=webdriver.Chrome('/mnt/c/ChromeDriver/ChromeDriver.exe')失败
browser.get('https://stackoverflow.com')

它失败并出现错误:

引发WebDriverException(“无法连接到服务%s)”
self.path)selenium.common.exceptions.WebDriverException:消息:Can
未连接到服务chromedriver(*或/usr/bin/chromedriver或/mnt/c/chromedriver/chromedriver.exe,具体取决于启动webdriver.Chrome()的方式)

如何使用python3和selenium从WSL2启动Chrome驱动程序

对于那些尚未找到解决方案的人。
遵循本教程:WSL2中的chromedriver
很多都是相似的,但我的诀窍是将chromedriver放在相应的组和用户中:

sudo chown root:root/usr/bin/chromedriver

发表评论