Python Selenium如何保持Firefox Windows单点登录选项勾选状态
Python Selenium控制Firefox时固定Windows单点登录选项的方案
问题背景
使用Python Selenium调用Firefox驱动开展自动化操作时,每次重新运行脚本,设置面板中Allow Windows single sign-on for Microsoft, work, and school accounts(允许Microsoft、工作和学校账户使用Windows单点登录)配置项都会自动变为未勾选状态,无法保留预设的勾选设置。
对应设置项界面参考:
原因说明
Selenium启动Firefox时默认会生成独立的临时用户配置文件,不会继承用户在本地Firefox中手动修改的设置,因此每次重启脚本都会重置所有配置到默认状态。
可行解决方案
方案1:启动时通过代码强制注入配置(推荐,最稳定)
该设置在Firefox底层about:config中对应的参数为network.http.windows-sso.enabled,只需要在初始化驱动前将该参数设为True,即可保证每次启动时该选项默认保持勾选,不会重置。
完整代码示例:
from selenium import webdriver from selenium.webdriver.firefox.options import Options # 初始化Firefox配置项 ff_options = Options() # 强制开启Windows单点登录功能,对应界面勾选状态 ff_options.set_preference("network.http.windows-sso.enabled", True) # 可选:添加微软系站点到NTLM/协商认证信任列表,避免SSO认证被拦截 ff_options.set_preference("network.automatic-ntlm-auth.trusted-uris", "https://login.microsoftonline.com,https://*.office.com,https://*.microsoft.com") ff_options.set_preference("network.negotiate-auth.trusted-uris", "https://login.microsoftonline.com,https://*.office.com,https://*.microsoft.com") # 启动驱动,后续操作中SSO选项会始终保持勾选 driver = webdriver.Firefox(options=ff_options)
启动后可手动打开about:preferences#privacy翻到登录与密码板块验证,对应选项会处于勾选状态。
方案2:加载自定义持久化配置文件
如果需要保留更多自定义设置,可以提前创建专门给自动化使用的独立Firefox配置文件,手动勾选对应选项后,启动脚本时指定加载该固定配置文件,所有设置都会永久保留,不会随脚本重启重置。
操作步骤:
- 关闭所有运行中的Firefox进程,按下
Win+R输入firefox.exe -P回车,打开Firefox配置文件管理器 - 点击「创建配置文件」,新建一个命名为
selenium-auto的独立配置,选择本地存储路径后完成创建 - 选中新建的配置文件启动Firefox,进入设置页手动勾选Windows单点登录选项,完成后关闭浏览器
- 在脚本中指定加载该配置文件的本地路径即可:
from selenium import webdriver from selenium.webdriver.firefox.options import Options ff_options = Options() # 替换为你本地新建的selenium-auto配置文件的实际路径 ff_options.profile = "C:/Users/你的系统用户名/AppData/Roaming/Mozilla/Firefox/Profiles/随机字符.selenium-auto" driver = webdriver.Firefox(options=ff_options)
注意:不要直接加载日常使用的默认Firefox配置文件跑自动化,避免脚本操作误删个人书签、保存的密码等浏览数据。
内容的提问来源于stack exchange,提问作者leeand00
相关产品推荐
相关产品推荐

