WebDriverException: Сообщение: Сервис C: \ Program Files \ Mozilla Firefox \ firefox.exe неожиданно завершил работу с помощью DesiredCapabilities через Selenium - PullRequest
1 голос
/ 16 апреля 2019

Мне нужно использовать самую последнюю версию Firefox на моем компьютере с Windows. Следовательно, я не хочу использовать драйвер ghecko по умолчанию. Вот как близко я подобрался.

 import time
 from selenium import webdriver
 from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

 binary = webdriver.Firefox(executable_path= r'C:\Program Files\Mozilla Firefox\firefox.exe')
 caps = DesiredCapabilities.FIREFOX.copy()

 caps['marionette'] = True

 driver = webdriver.Firefox(firefox_binary=binary,capabilities=caps, executable_path=(os.path.abspath("geckodriver.exe")))

 time.sleep(5)
 driver.get("http://www.google.com")

Последний браузер запускается со страницей по умолчанию, однако driver.get() не работает при выходе с WebDriverException: Сообщение: Служба C: \ Program Files \ Mozilla Firefox \ firefox.exe неожиданно завершилась. Код статуса был: 1. Как мне обойти.

1 Ответ

0 голосов
/ 16 апреля 2019

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

  • Аргумент executable_path используется для передачи абсолютного пути гекодривера binary.
  • Если Firefox установлен в расположении по умолчанию , вам не нужно пропускать абсолютный путь Firefox бинарный вообще.
  • Если вы используете Selenium 3.x , GeckoDriver и Firefox , возможность марионетка по умолчанию установлена ​​на true. Вам не нужно явно упоминать об этом.
  • Индуцирование time.sleep() снижает Производительность выполнения теста . WebDriverWait вместо.
  • Ваш эффективный блок кода будет:

    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.binary = binary
    cap = DesiredCapabilities().FIREFOX.copy()
    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 ("Firefox Initialized")
    driver.quit()
    
  • Консольный вывод:

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