You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Python Arsenic指定Firefox浏览器二进制文件路径?

解决Arsenic中指定Firefox二进制路径的问题

核心问题分析

你之前的两处错误源于混淆了Geckodriver服务和Firefox浏览器的配置对象,以及错误的capabilities嵌套结构:

  • service.binary是用来指定Geckodriver可执行文件的路径,而非Firefox浏览器的二进制文件
  • 直接设置browser.capabilities["moz:firefoxOptions.binary"]不符合WebDriver的capabilities结构,moz:firefoxOptions本身是一个字典,需要将binary作为其子键

正确配置代码

from arsenic import get_session
from arsenic.browsers import Firefox
from arsenic.services import Geckodriver
import asyncio

async def main():
    # 1. 配置Geckodriver服务:指定geckodriver.exe的路径
    service = Geckodriver(binary=r"C:\path\to\geckodriver.exe")
    
    # 2. 配置Firefox浏览器:通过嵌套的moz:firefoxOptions指定二进制路径
    browser = Firefox(
        capabilities={
            "moz:firefoxOptions": {
                "binary": r"C:\path\to\firefox.exe"
            }
        }
    )
    
    # 3. 启动会话并执行操作
    async with get_session(service, browser) as session:
        await session.get("https://example.com")
        # 这里添加你的业务逻辑

asyncio.run(main())

额外说明

  • 建议使用原始字符串(r"")来避免路径中的转义字符问题
  • 如果你的Geckodriver已经在系统PATH中,可以省略service.binary的设置,直接用service = Geckodriver()
  • 若仍遇到问题,检查Firefox和Geckodriver的版本兼容性,确保两者版本匹配

内容的提问来源于stack exchange,提问作者ShadowMagic896

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:10:28