Selenium加载自定义配置启动Firefox后无法访问指定URL该如何解决?
问题原因与解决方法
核心触发原因
你当前的写法存在两处易导致该问题的错误:
- Selenium版本适配问题:
firefox_options参数在Selenium 3.8及以上版本已正式弃用,该参数传递的配置会被部分版本忽略,导致配置加载逻辑异常,连带后续get请求不执行 - 火狐配置加载方式不规范:直接通过启动参数传入本地配置路径的方式稳定性差,容易被火狐自身的会话恢复逻辑覆盖跳转请求
修复方案
第一步:调整代码写法,使用规范的配置加载方式
修正后的代码如下:
from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.firefox_profile import FirefoxProfile from selenium import webdriver # 加载本地配置文件 profile = FirefoxProfile('/home/123/.mozilla/firefox/user123.default') options = Options() options.profile = profile # 初始化驱动,使用规范的options参数 driver = webdriver.Firefox(options=options) driver.get("https://google.com")
第二步:排查火狐配置冲突
如果调整代码后问题仍存在,需要修改你的火狐用户配置里的启动规则:
- 手动打开该配置对应的火狐浏览器,访问
about:preferences#home - 把「启动时打开」选项修改为空白页,不要设置为「恢复上次的窗口和标签页」
- 进入
about:config,搜索browser.sessionstore.resume_from_crash,将值设置为false,关闭崩溃恢复逻辑干扰
第三步:可选优化
如果还是偶发不跳转的情况,可以在driver.get前加3秒左右的等待,等浏览器核心完全加载完成再执行跳转请求,代码如下:
import time # 初始化驱动之后加等待 driver = webdriver.Firefox(options=options) time.sleep(3) driver.get("https://google.com")
内容的提问来源于stack exchange,提问作者SimpleGuy_
相关产品推荐
相关产品推荐

