如何在wsl2上运行来自python3的Selenium ChromeDriver



我正试图使用python 3从WSL2(Ubuntu 18.04(无头打开Chrome。

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

它失败并出现错误:

引发WebDriverException("无法连接到服务%s"(%self.path(selenium.com.mon.exceptions.WebDriverException:消息:可以不连接到服务chromedriver(*或/usr/bin/chromedriver/chromedriver.exe,具体取决于我如何启动webdriver.Chrome(((

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

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

sudo chown root:root /usr/bin/chromedriver

您可以通过给定的代码安装chromedrive。

wget -N http://chromedriver.storage.googleapis.com/2.26/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
chmod +x chromedriver
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

如果您没有chrome,那么您确实需要使用给定的代码。

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
sudo apt-get update 
sudo apt-get install google-chrome-stable

我可能会错过一些东西,所以,请参阅参考网站。参考:https://www.srcmake.com/home/selenium-python-chromedriver-ubuntu

在您获得selenium和chrome驱动程序后,您可以使用给定的无头chrome代码。此外,还有一个包调用"0";chromedriver_autoinstaller";我不确定它是否在ubuntu上运行,但如果你每天都在使用相同的脚本,并且你的浏览器正在自动更新,这是一个很棒的包。

无头铬代码:

#for headless browser use this arguments
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=chrome_options)

在webdriver中放入必要的参数。Chrome,如果您使用的是路径和其他条件。

我认为这是不可能的。您在Linux下,所以不能使用Windows可执行文件。

我试着使用Chromium的无头版本,但它不起作用,因为(看起来(Q

https://www.selenium.dev/documentation/grid/getting_started/

你可以使用网格来解决这个问题

在窗口中:

  1. 安装驱动程序并配置路径
  2. 安装已安装的java11或更高版本
  3. 安装硒服务器

在wsl2-Ubuntu2004:中

  1. pip安装硒

相关内容

  • 没有找到相关文章