geckodriver 的 Google Colaboratory 中的 executable_path 是什么?

ves*_*abo 5 firefox python-3.x selenium-webdriver geckodriver google-colaboratory

我想在带有 Selenium Python 包的 Google Colaboratory 中使用 geckodriver。这是我尝试过的(我不是 Ubuntu 专家)

!pip install selenium
!apt-get update 
!apt install firefox-geckodriver
from selenium.webdriver.firefox.options import Options as FirefoxOptions

firefox_options = FirefoxOptions()
firefox_options.add_argument("--headless")
driver = webdriver.Firefox(executable_path=r'/usr/bin/firefox', options=firefox_options)
Run Code Online (Sandbox Code Playgroud)

这里r'/usr/bin/firefox是错误的。我糊涂了。解决办法是什么?任何帮助表示赞赏。

Deb*_*anB 5

可执行文件路径

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/")
Run Code Online (Sandbox Code Playgroud)

但在您的代码试验中,您传递了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/')
Run Code Online (Sandbox Code Playgroud)

Google 合作实验室中的 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/')
Run Code Online (Sandbox Code Playgroud)

更新1

根据您在评论中提到的错误,当您使用ipython选项时,应在单引号内传递 asstart-maximized--headless。此外,在指定和executable_path之间不应有任何空格字符raw string literals markerstring

您可以在SyntaxError: invalid syntax withexecutable_path in ipython 中找到相关讨论


更新2

对于GeckoDriverSeleniumFirefox 浏览器兼容性图表,您可以在WebDriverException: Message: invalid argument: can't Kill an exited process with GeckoDriver, Selenium and Python on RaspberryPi3中找到相关讨论

  • 我在 google colab 上尝试过此操作,但收到“WebDriverException:消息:进程意外关闭并带有状态信号” (2认同)