使用Firefox时Selenium抛出InvalidArgumentException异常求助
问题解决思路
核心错误原因
你代码里犯了一个关键错误:给Firefox Driver传入了Chrome专属的Service类实例。Chrome和Firefox的Service实现是独立的,不能跨浏览器混用,这会导致Firefox Driver初始化时出现参数解析异常,进而触发偏好设置相关的错误提示(虽然报错信息指向偏好,但根源是Service类型不匹配)。
修复步骤
- 替换Service导入:把Chrome的Service换成Firefox对应的Service类
# 替换原来的Chrome Service导入 from selenium.webdriver.firefox.service import Service - 修正Driver初始化代码:
service = Service(executable_path=self._driver_path, log_path=Browser.get_log_full_path(self._name)) self._driver = webdriver.Firefox(service=service, options=opts)
额外注意事项(针对geckodriver 0.30升级后的问题)
如果修复Service后仍然出现偏好相关的异常,需要检查你传入的opts(FirefoxOptions)中设置的所有浏览器偏好:
- 确保所有偏好的值都是字符串、整数或布尔值,禁止传入列表、字典等复杂数据类型
- geckodriver 0.30版本对偏好设置的校验比旧版本更严格,任何不符合类型要求的偏好都会触发这个错误
内容的提问来源于stack exchange,提问作者Mate Mrše
相关产品推荐
相关产品推荐

