WebDriverException:消息:服务S:通过DesiredCapabilities意外退出了C:\ Program Files \ Mozilla Firefox \ firefox.exe

时间:2019-04-16 01:30:12

标签: python selenium firefox geckodriver desiredcapabilities

我需要在Windows计算机上使用最新版本的firefox。因此,不想使用默认的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 :(得分:0)

您需要在这里注意几件事:

  • 自变量function showHideNav() { if ($(window).scrollTop() > 50) { // Show white nav $("nav").addClass("white-nav-top"); // Show dark logo $(".navbar-brand img").attr("src", "images/logo/logo.svg"); // Show back to top button $("#back-to-top").fadeIn(); 用于传递 geckodriver 二进制文件的绝对路径
  • 如果 Firefox 安装在默认位置,则无需通过 firefox的绝对路径。 strong>完全是二进制。
  • 如果您使用的是 Selenium 3.x GeckoDriver Firefox ,则功能 marionette 设置为 executable_path 默认情况下,您不必明确提及。
  • 诱使true会降低测试执行性能,而改用WebDriverWait
  • 您的有效代码块将是:

    time.sleep()
  • 控制台输出:

    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()