【问题标题】:Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided using GeckoDriver预期的浏览器二进制位置,但无法在默认位置找到二进制文件,没有使用 GeckoDriver 提供的“moz:firefoxOptions.binary”功能
【发布时间】:2021-03-26 19:49:16
【问题描述】:
from selenium import webdriver;
browser= webdriver.Firefox();
browser.get('http://www.seleniumhq.org');

当我尝试运行这段代码时,它给了我一个error message

Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line.

任何想法-高度赞赏!

【问题讨论】:

  • 你需要将firefox的webdriver放在你的脚本目录或系统路径中。链接:github.com/mozilla/geckodriver/releases>

标签: python selenium selenium-webdriver firefox geckodriver


【解决方案1】:

此错误消息...

Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line.

...暗示GeckoDriver 无法在默认位置找到 Firefox 二进制文件。此外,您还没有通过moz:firefoxOptions.binary 功能。


解决方案

可能在您的系统中 安装在自定义位置,这些情况您需要通过moz:firefoxOptions.binary 功能传递Firefox 二进制文件的绝对路径如下:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'
driver = webdriver.Firefox(executable_path=r'C:\WebDrivers\geckodriver.exe', options=options)
driver.get('http://google.com/')

参考文献

您可以在以下位置找到一些相关的详细讨论:

【讨论】:

    【解决方案2】:

    我的系统上根本没有安装 Firefox。这就是出现此错误的原因。

    【讨论】:

      【解决方案3】:

      同样的问题:

      • 环境
        • 操作系统:Mac
          • 不安装Firefox应用程序
          • 已安装geckodriver,可以在PATH找到
      • 错误原因:未安装Firefox
      • 解决方案:(转到firefox official site 下载并)安装Firefox

      【讨论】:

        【解决方案4】:

        我已经卸载了 firefox 并再次安装它解决了我的问题。

        【讨论】:

          【解决方案5】:

          您应该从https://github.com/mozilla/geckodriver/releases 下载适当的网络驱动程序并将其放入您的 py 文件所在的文件夹中。您也可以将它放在任何位置,只要它在系统路径中的文件位置即可。

          【讨论】:

            【解决方案6】:

            Selenium 使用网络驱动程序(每个网络浏览器的特定驱动程序)来与安装在您系统上的浏览器(在您的情况下为 Firefox)进行通信。

            要使用 Firefox,您必须:

            1. 从以下位置下载其 Web 驱动程序 https://github.com/mozilla/geckodriver/releases
            2. 将 Web 驱动程序放在文件系统中的特定位置(例如与 python 脚本相同的文件夹)
            3. 在python代码中初始化时添加web驱动位置路径。

            所以最终的代码应该是这样的:

            from selenium import webdriver
            
            browser = webdriver.Firefox('./geckodriver')
            
            browser.get('https://www.python.org/')
            

            注意:有时,较新版本的网络驱动程序与您系统上安装的旧版本浏览器不兼容。

            【讨论】:

              【解决方案7】:

              在此之前确保路径变量包含 geckodriver click here to download driver 并在 python 脚本下运行。

              from selenium import webdriver
              from selenium.webdriver.firefox.options import Options
              
              options = Options()
              options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'
              driver = webdriver.Firefox(options=options)
              driver.get('http://google.com/')
              

              【讨论】:

                【解决方案8】:

                您需要下载 geckodriver。

                https://github.com/mozilla/geckodriver/releases

                from selenium import webdriver;
                
                browser= webdriver.Firefox('./geckodriver');
                browser.get('http://www.seleniumhq.org');
                

                【讨论】:

                  猜你喜欢
                  • 2021-05-06
                  • 2021-07-18
                  • 2021-09-22
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-03-02
                  • 2018-03-31
                  • 2020-11-04
                  • 2022-06-29
                  相关资源
                  最近更新 更多