【发布时间】:2020-11-27 03:28:32
【问题描述】:
我正在尝试使用 python 3 从 WSL2(Ubuntu 18.04)无头打开 Chrome。
在 Windows 上,我使用的是 Chrome 84。我从 ChromeDriver - WebDriver for Chrome 下载了 Chrome 驱动程序 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("无法连接到服务 %s" % self.path)selenium.common.exceptions.WebDriverException:消息:可以 未连接到服务 chromedriver(* 或 /usr/bin/chromedriver 或 /mnt/c/ChromeDriver/chromedriver.exe,具体取决于我如何启动 webdriver.Chrome())
如何使用 python3 和 selenium 从 WSL2 启动 Chrome 驱动程序?
【问题讨论】:
-
您找到解决方案了吗?
-
@LuísCosta 您在其他地方提到您从下面的答案中尝试过this link。当您尝试安装 Linux 版 Chrome 时发生了什么?我建议跟进该路径,因为正如我在另一条评论中提到的那样,该链接中提到的
localhost问题将阻止您以 WSL1 方式执行此操作(您和此 OP 似乎都是试)。作为一种可能的替代方法,有没有办法更改 Selenium 尝试连接的主机/端口? -
我创建了一个新的 WSL 副本(以消除可能的错误配置),点击下面的链接并没有成功,无论我尝试什么我总是最终得到:消息:未知错误:Chrome启动失败:异常退出。 (未知错误:DevToolsActivePort 文件不存在)(从 chrome 位置 /usr/bin/google-chrome 启动的进程不再运行,所以 ChromeDriver 假设 Chrome 已崩溃由于您指出的问题,已经放弃了以前的方法出来:)
-
@LuísCosta 不要忘记在回复中标记我 - 否则我不会收到通知(除非这是我的问题或答案)。只记得在我们上次就您的其他问题进行交流后回来查看!让我看看我是否可以设置它。自从我在 WSL2 上尝试 ChromeDriver 以来已经有一年了,我不记得我最终在哪里结束了。
-
@LuísCosta 你还在做这个吗?我能够通过 (a) 按照these steps 安装 xrdp (尽管这与为最终结果安装 X 服务器应该没有什么不同),然后 (b) 按照下面答案中链接的说明来完成这项工作.如果您仍想解决此问题,您可以发送
command -v chromedriver和command -v google-chrome并发布结果吗?谢谢!
标签: python-3.x selenium google-chrome selenium-chromedriver wsl-2