预期的浏览器二进制位置,但无法在默认位置找到二进制文件,使用 GeckoDriver 时未提供“moz:firefoxOptions.binary”功能

2025-03-21 09:06:00
admin
原创
43
摘要:问题描述:from selenium import webdriver; browser= webdriver.Firefox(); browser.get('http://www.seleniumhq.org'); 当我尝试运行此代码时,它会给我一个error message:Expected browse...

问题描述:

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.

任何想法都非常感谢!


解决方案 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无法在默认位置找到Firefoxmoz:firefoxOptions.binary二进制文件。此外,您还没有通过该功能。


解决方案

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

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

options = Options()
options.binary_location = r'C:Program FilesMozilla Firefoxirefox.exe'
driver = webdriver.Firefox(executable_path=r'C:WebDriversgeckodriver.exe', options=options)
driver.get('http://google.com/')

参考

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

  • SessionNotCreatedException:消息:预期浏览器二进制位置,但无法在默认位置找到二进制文件,没有“moz:firefoxOptions.binary”

  • InvalidArgumentException:消息:二进制文件不是使用 GeckoDriver Firefox Selenium 和 Python 的 Firefox 可执行文件错误

  • 预期的浏览器二进制位置,但无法在默认位置找到二进制文件,未提供“moz:firefoxOptions.binary”功能

解决方案 2:

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

解决方案 3:

同样的问题:

  • 环境

    • 操作系统:Mac

      • 未安装Firefox应用程序

      • 已安装geckodriver,可以在PATH

  • 错误原因:未安装Firefox

  • 解决方法:(前往Firefox 官方网站下载并)安装 Firefox

解决方案 4:

我已经卸载 Firefox 并重新安装它,这解决了我的问题。

解决方案 5:

在此之前,请确保路径变量已包含 geckodriver,单击此处下载驱动程序并运行以下 python 脚本。

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

options = Options()
options.binary_location = r'C:Program FilesMozilla Firefoxirefox.exe'
driver = webdriver.Firefox(options=options)
driver.get('http://google.com/')

解决方案 6:

作为 selenium/firefox 的附注(但使用 C#,而不是 Python),这个问题现在非常相关,因为 firefox 位置似乎存储在 windows 的新 regedit 位置中。事实上,geckodriver 正在查找此处记录的 regedit 位置:

HKEY_LOCAL_MACHINESOFTWARE WOW6432NodeMozillaMozilla Firefox[VERSION]MainPathToExe


HKEY_LOCAL_MACHINESOFTWAREMozillaMozilla Firefox[VERSION]MainPathToExe

来源:
https://developer.mozilla.org/en-US/docs/Web/WebDriver/Capabilities/firefoxOptions

当我的机器上它出现时:

HKEY_LOCAL_MACHINESOFTWAREMozillaMozilla Firefox 109.0in

版本号存储在这里:

HKEY_LOCAL_MACHINESOFTWAREmozilla.orgMozilla

然后我使用 C# Api 设置了 selenium 驱动程序(为 poc 硬编码的路径):

var options = new FirefoxOptions();
...
options.BrowserExecutableLocation = @"C:Program FilesMozilla Firefoxirefox.exe";
Driver = new FirefoxDriver(options);

问候

解决方案 7:

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

解决方案 8:

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

要使用 Firefox,您必须:

  1. 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/')

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

解决方案 9:

我遇到了同样的问题(Windows,Firefox v99,Selenium 4.1.4,geckodriver 0.31.0),exe 文件的路径和驱动程序初始化设置正确,通过将 win32 版本的 geckodriver 更改为 win64 版本解决了该问题

解决方案 10:

检查你的系统是否安装了 Firefox

firefox -v

如果没有,请使用 snap 安装

sudo snap install firefox

解决方案 11:

您需要下载 geckodriver。

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

from selenium import webdriver;

browser= webdriver.Firefox('./geckodriver');
browser.get('http://www.seleniumhq.org');
相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   2482  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1533  
  PLM(产品生命周期管理)项目对于企业优化产品研发流程、提升产品质量以及增强市场竞争力具有至关重要的意义。然而,在项目推进过程中,范围蔓延是一个常见且棘手的问题,它可能导致项目进度延迟、成本超支以及质量下降等一系列不良后果。因此,有效避免PLM项目范围蔓延成为项目成功的关键因素之一。以下将详细阐述三大管控策略,助力企业...
plm系统   0  
  PLM(产品生命周期管理)项目管理在企业产品研发与管理过程中扮演着至关重要的角色。随着市场竞争的加剧和产品复杂度的提升,PLM项目面临着诸多风险。准确量化风险优先级并采取有效措施应对,是确保项目成功的关键。五维评估矩阵作为一种有效的风险评估工具,能帮助项目管理者全面、系统地评估风险,为决策提供有力支持。五维评估矩阵概述...
免费plm软件   0  
  引言PLM(产品生命周期管理)开发流程对于企业产品的全生命周期管控至关重要。它涵盖了从产品概念设计到退役的各个阶段,直接影响着产品质量、开发周期以及企业的市场竞争力。在当今快速发展的科技环境下,客户对产品质量的要求日益提高,市场竞争也愈发激烈,这就使得优化PLM开发流程成为企业的必然选择。缺陷管理工具和六西格玛方法作为...
plm产品全生命周期管理   0  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用