python - selenium.common.exceptions.WebDriverException : Message: 'firefox' executable needs to be in PATH with GeckoDriver Firefox Selenium and Python

标签 python python-2.7 selenium firefox geckodriver

我正在尝试用 selenium 打开 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") ,我把驱动程序放在了同一个目录。

最佳答案

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

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

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

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

以下代码块可以完美地打开 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
    

关于python - selenium.common.exceptions.WebDriverException : Message: 'firefox' executable needs to be in PATH with GeckoDriver Firefox Selenium and Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54261423/

相关文章:

python - 如何在 Python 中进行动态类生成? (或者一系列 if/else 会更好)

python - 当我尝试使用 pip 安装软件包时出现错误

python - 如何在 python 中 append print 函数的值

python - 有两部词典,想以某种方式将它们组合起来

java - 使用数据提供程序时如何在测试后重新启动浏览器

python - 更改 ggplot 的默认样式

python - 如何计算 USB 3.0 立体相机的深度信息?

android - 在 Android 终端中运行 Python

Selenium :测试 "disable on submit"行为

selenium - 如何使用Selenium Webdriver中的xpath查找包含的文本的确切值?