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?
localhost
problem mentioned in that link is going to stop you from doing it the WSL1 way (which is what both you and this OP seem to be trying). As a possible alternative, is there a way to change the host/port that Selenium is attempting to connect to? - NotTheDr01ds