I'm trying to headless open Chrome from WSL2 (Ubuntu 18.04) using python 3.
On Windows I'm using Chrome 84. I've downloaed Chrome Driver 84 from ChromeDriver - WebDriver for Chrome. And installed the .exe under C:\ChromeDriver\chromedriver.exe
I've set a symbolic link from my Windows Chrome and ChromeDriver to 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
Both Chromes are set to be executable by any user on WSL2.
On WSL2, when I enter in the console:
google-chrome --use-gl=swiftshader
Chrome starts on windows.
Here is my script:
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')
It fails with error:
raise WebDriverException("Can not connect to the Service %s" % self.path) selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver (* OR /usr/bin/chromedriver OR /mnt/c/ChromeDriver/chromedriver.exe depending on how I start webdriver.Chrome())
How to be able to start Chrome Driver from WSL2 using python3 and selenium?