WebDriverException: Сообщение. Похоже, что браузер завершил работу, прежде чем мы смогли соединиться с ошибками GeckoDriver Selenium и Python. - PullRequest
0 голосов
/ 13 сентября 2018

Существует около 100 сообщений об одной и той же проблеме, но ни одна из них, похоже, не работает для меня, поэтому спрашиваю снова.Я пытаюсь запустить браузер Firefox, используя Python и Selenium, и получаю следующую ошибку:

WebDriverException : Сообщение. Похоже, что браузер завершил работу, прежде чем мы смогли подключиться.Если вы указали log_file в конструкторе FirefoxBinary, проверьте его для получения подробной информации.

Я пробовал каждый ответ в Интернете, но, похоже, ничего не работает.

Это мой код:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX
caps["marionette"] = False

binary = FirefoxBinary('d:\\Desktop\\IEDriver\\geckodriver.exe')

options = Options()
options.set_headless(headless=True)
driver = webdriver.Firefox(firefox_binary=binary, firefox_options=options, executable_path=r'd:\\Desktop\\IEDriver\\geckodriver.exe')
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()

Если я установлю caps["marionette"] = True, я получу ошибку:

SessionNotCreatedException : Сообщение: Невозможно найти соответствующий набор возможностей

Версии программного обеспечения, которое я использую:

Firefox : 62,0 (64 бита)

Селен : 3.14.0

Геккон : 0.21.0

Python : 3

ОС : Windows 8.1 64-битная

Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ: я удалил и переустановил Firefox, но не работал.Также попробовал установить Firefox 61.0.2, все равно не повезло.

1 Ответ

0 голосов
/ 14 сентября 2018

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

WebDriverException: Message: The browser appears to have exited before we could connect. 
If you specified a log_file in the FirefoxBinary constructor, check it for details.

... означает, что GeckoDriver не смог запустить / создать новый WebBrowser , то есть Браузер Firefox сеанс.

Вам необходимо позаботиться о нескольких вещах следующим образом:

  • Чтобы установить FirefoxBinary, вам необходимо использовать FirefoxOptions() ивместо прохождения абсолютного пути из geckodriver двоичного файла, вы должны передать абсолютный путь желаемого firefox двоичного файла.
  • Поскольку вы используете GeckoDriver v0.21.0 , вам обязательно нужно использовать марионетку , поэтому либо оставьте его неизменным (по умолчанию true), либо установите марионетка на true.
  • Ваш собственный код с учетом незначительных изменений будет:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    binary = r'C:\Program Files\Mozilla Firefox\firefox.exe'
    options = Options()
    options.set_headless(headless=True)
    options.binary = binary
    cap = DesiredCapabilities().FIREFOX
    cap["marionette"] = True #optional
    driver = webdriver.Firefox(firefox_options=options, capabilities=cap, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
    driver.get("http://google.com/")
    print ("Headless Firefox Initialized")
    driver.quit()
    
  • Вывод на консоль:

    Headless Firefox Initialized
    
  • Здесь вы можете найти подробное обсуждение Невозможно найти соответствующий набор возможностей с selenium 3.4.3, firefox 54.0 идрайвер геккона 0.17

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...