executable_path
executable_path 是参数,用户可以通过该参数传递 GeckoDriver 二进制文件的绝对路径,覆盖 的 系统路径用于 Firefox 47.0.1 及更高版本的 GeckoDriver 二进制文件。
例子
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("start-maximized")
options.add_argument("--headless")
driver = webdriver.Firefox(options=options, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("http://google.com/")
但在您的代码试验中,您通过了 Firefox 二进制文件的绝对路径,而不是 GeckoDriver 二进制文件。如果您的用例也是传递 Firefox 二进制文件的 绝对路径,您可以使用以下代码行:
from selenium import webdriver
binary = r'C:\Program Files\Mozilla Firefox\firefox.exe'
options = webdriver.FirefoxOptions()
options.binary = binary
options.add_argument("start-maximized")
options.add_argument("--headless")
browser = webdriver.Firefox(firefox_options=options, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe")
browser.get('http://google.com/')
Google-Colaboratory 中的 GeckoDriver
您需要安装 geckodriver、firefox 和 selenium 并将路径添加到系统中的路径变量或复制到 bin 目录中,您可以使用以下解决方案:
# install firefox, geckodriver, and selenium
!apt-get update
!pip install selenium
!apt install firefox-geckodriver
!cp /usr/lib/geckodriver /usr/bin
!cp /usr/lib/firefox /usr/bin
from selenium import webdriver
binary = '/usr/bin/firefox'
options = webdriver.FirefoxOptions()
options.binary = binary
options.add_argument('start-maximized')
options.add_argument('--headless')
browser = webdriver.Firefox(firefox_options=options, executable_path='/usr/bin/geckodriver')
browser.get('http://google.com/')
更新 1
根据您在 cmets 中提到的错误,当您使用 ipython 时,选项应在单引号内传递为 start-maximized 和 --headless。此外,在指定 executable_path 时,raw string literals marker 和 string
之间不应有任何空格字符
您可以在SyntaxError: invalid syntax with executable_path in ipython找到相关讨论
更新 2
GeckoDriver、Selenium 和 Firefox Browser 兼容性图表您可以在WebDriverException: Message: invalid argument: can't kill an exited process with GeckoDriver, Selenium and Python on RaspberryPi3
找到相关讨论