At a first glance to your code trial it seems there is a minor bug in the value of the argument executable_path. Instead of hromedriver.exe
it should have been:
# Windows OS
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
# Linux OS
driver = webdriver.Chrome(executable_path="/path/to/chromedriver")
This error message…
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver.exe
…implies that the the program/script was unable to initiate/spawn the ChromeDriverService
through chromedriver.exe.
The potential reason for the error can be:
- Due to missing the entry
127.0.0.1 localhost
in/etc/hosts
Solution
-
Windows OS – Add
127.0.0.1 localhost
to/etc/hosts
-
Mac OSX – Ensure the following entries:
127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost fe80::1%lo0 localhost
References
As per the discussion in selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service geckodriver:
- Selenium does not require
127.0.0.1 localhost
to be explicitly set in the host file. - However it is mandatory requirement to map localhost to the IPv4 local loopback (127.0.0.1)
- The mechanism of this mapping does not have to be through the hosts file always.
- On Windows OS systems it is not mapped in the hosts file at all (resolving localhost is done by the DNS resolver).