selenium.common.exceptions.WebDriverException: Сообщение: не удается подключиться к службе chromedriver.exe при открытии браузера Chrome - PullRequest
0 голосов
/ 06 июня 2018

У меня в локальной среде Chrome 67 Python 3.5.0 Selenium 3.12.0

есть следующая среда. Я скачал chromedriver с версией 2.39

. У меня есть файл .py следующим образом

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path="hromedriver.exe")
driver.get('http://www.google.com')
time.sleep(5)
search_box = driver.find_element_by_name('q')
search_box.send_keys('Python')
search_box.submit()
time.sleep(5)
driver.quit()

Я получаю следующую ошибку.

C:\Python354\python.exe D:/formf.py
Traceback (most recent call last):
  File "D:/PCPNDT/form.py", line 4, in <module>
    driver = webdriver.Chrome(executable_path="chromedriver.exe")  # Optional argument, if not specified will search path.
  File "C:\Python354\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in __init__
    self.service.start()
  File "C:\Python354\lib\site-packages\selenium\webdriver\common\service.py", line 104, in start
    raise WebDriverException("Can not connect to the Service %s" % self.path)
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver.exe

Я также пытался использовать другой веб-драйвер, такой как geckodriver.exe, с той же ошибкой.

Пожалуйста, помогите мне устранить эту ошибку.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

С первого взгляда на пробную версию кода кажется, что есть незначительная ошибка в значении аргумента executetable_path .Вместо hromedriver.exe это должно было быть:

# Windows OS
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
# Linux OS
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

Это сообщение об ошибке ...

selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver.exe

... означает, что программе / сценарию не удалосьинициировать / порождать ChromeDriverService - chromedriver.exe .

Потенциальная причина ошибки может быть:

  • Из-заотсутствует запись 127.0.0.1 localhost в /etc/hosts

Решение

  • ОС Windows - Добавить 127.0.0.1 localhost к /etc/hosts

  • Mac OSX - Убедитесь, что введены следующие данные:

    127.0.0.1   localhost
    255.255.255.255 broadcasthost
    ::1 localhost
    fe80::1%lo0 localhost   
    

Ссылки

Согласно обсуждению в selenium.common.exceptions.WebDriverException: Сообщение: Невозможно подключиться к Сервисному геккодриверу :

  • Selenium нетребуется, чтобы 127.0.0.1 localhost было явно задано в файле хоста.
  • Однако это обязательное требование для сопоставления localhost с локальной петлей IPv4 (127.0.0.1)
  • Механизм oЕсли это отображение не обязательно должно выполняться через файл hosts.
  • В системах Windows OS оно вообще не отображается в файле hosts (разрешение localhost выполняется распознавателем DNS).

TL; DR

Как восстановить файл Hosts обратно по умолчанию

0 голосов
/ 07 июня 2018

Вы допустили ошибку в исполняемом адресе:

driver = webdriver.Chrome(executable_path="hromedriver.exe")

Это должно быть:

driver = webdriver.Chrome(executable_path="chromedriver.exe")
...