selenium.common.exceptions.WebDriverException:消息:“ firefox”可执行文件必须与GeckoDriver Firefox Selenium和Python一起放入PATH

时间:2019-01-18 21:04:57

标签: python python-2.7 selenium firefox geckodriver

我试图用硒打开Firefox,我尝试过

from selenium import webdriver
driver=webdriver.Firefox()

但是我遇到了以下错误:

selenium.common.exceptions.WebDriverException: Message: 'firefox' executable needs to be in PATH.

Selenium using Python - Geckodriver executable needs to be in PATH

我尝试过

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary('/usr/bin/firefox')
browser = webdriver.Firefox(firefox_binary=binary)

也尝试过

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.FIREFOX
caps['marionette'] = True
caps['binary'] = '/usr/bin/firefox'
d = webdriver.Firefox(capabilities=caps)

`,但仍然无法正常工作。

但是,当我尝试使用以上代码用

替换最后一行时

d=webdriver.Firefox(capabilities=caps,executable_path='/usr/bin/firefox'),将我的Firefox从后台关闭会打开Firefox,但我不能简单地d.get("https://www.google.com") 它卡在Linux主页上,并且不会打开任何内容。

在终端机中输入whereis firefox后,我得到了/usr/bin/firefox,同样重要的是,我使用python 2.7

注意:我希望这不是上面链接的重复,因为我尝试了答案,但并没有解决问题。

我从github安装了 geckodriver ,并尝试了browser=webdriver.Firefox(executable_path="geckodriver"),我将驱动程序放在了相同的目录。

1 个答案:

答案 0 :(得分:1)

仍不清楚为什么您看到此错误:

selenium.common.exceptions.WebDriverException: Message: 'firefox' executable needs to be in PATH.

在大多数情况下,与PATH相关的常见错误与 geckodriver 相关。

但是,在使用Selenium 3.x时,您需要从mozilla/geckodriver下载最新的 GeckoDriver 并将其保存在系统中的任何位置,并提供 GeckoDriver的绝对路径通过参数 executable_path

以下代码块可完美打开 Firefox Nightly Browser (安装在自定义位置):

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    options = Options()
    options.binary_location = '/path/to/firefox'
    driver = webdriver.Firefox(firefox_options=options, executable_path='/path/to/geckodriver')
    driver.get('http://google.com/')
    print("Page title is: %s" %(driver.title))
    driver.quit()
    
  • 控制台输出:

    Page title is: Google