我需要在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.我该如何解决。 最佳答案
您需要在这里注意以下几点:
参数executable_path
用于传递geckodriver二进制文件的绝对路径。
如果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
关于python - WebDriverException:消息:服务C:\Program Files\Mozilla Firefox\firefox.exe通过Selenium使用DesiredCapabilities意外退出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55699330/