python 会话未创建异常:消息:预期浏览器二进制位置,但无法在默认位置找到二进制,没有'moz:firefoxOptions.binary'

nzkunb0c  于 2022-12-28  发布在  Python
关注(0)|答案(2)|浏览(214)

当我尝试在Selenium中创建Firefox示例时,我收到以下错误:

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

我用的是Ubuntu 20.04
如有任何建议,我们将不胜感激。

browser = webdriver.Firefox()

Traceback (most recent call last):
  File "key.py", line 10, in <module>
    browser = webdriver.Firefox()
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
    RemoteWebDriver.__init__(
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: 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
8ljdwjyq

8ljdwjyq1#

此错误消息...

selenium.common.exceptions.SessionNotCreatedException: 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

...表示GeckoDriver在尝试启动/生成新的 * Browsing Context *(即 * Firefox Browser * 会话)时无法找到 * firefox * 二进制文件。

原因

此错误的可能原因可能是以下原因之一:

  • 系统中未安装 * Firefox *。
    • Firefox * 未安装在系统中的默认位置。

溶液
可能的解决方案有:

  • 如果您的系统中没有安装 * Firefox *,您需要在执行测试之前安装它。
  • 如果 * Firefox * 安装在自定义位置,则需要通过Options()示例传递 * firefox * 二进制文件的 * 绝对路径 *,如下所示:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.binary_location = r"C:/location/to/Firefox/Binary/firefox.exe"
driver = webdriver.Firefox(options=options, executable_path="C:/location/to/geckodriver.exe")
driver.get('http://google.com/')

参考文献

您可以在以下内容中找到一些相关的详细讨论:

  • 参数无效异常:消息:使用GeckoDriver Firefox Selenium和Python时,二进制文件不是Firefox可执行文件错误
  • 预期浏览器二进制位置,但无法在默认位置找到二进制,未提供"moz:firefoxOptions. binary"功能
  • 预期浏览器二进制位置,但在默认位置找不到二进制,使用GeckoDriver未提供"moz:firefoxOptions. binary"功能
kpbpu008

kpbpu0082#

它通过传递FirefoxBinary()选项对我起作用。
我的工作代码是-
从selenium. webdriver. firefox. firefox_binary导入Firefox二进制文件
从 selenium 导入webdriver
火狐二进制=火狐二进制()
驱动程序= Web驱动程序. Firefox(火狐二进制=火狐二进制)"""
上面的代码肯定对每个人都有效。

相关问题