惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
罗磊的独立博客
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
V
V2EX
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
量子位
MyScale Blog
MyScale Blog
G
Google Developers Blog
M
MIT News - Artificial intelligence
L
LangChain Blog
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
B
Blog

博客园 - 520_1351

使用Notepad++的快捷键运行Python时-报错-The security information for shortcuts.xml is missing in config.xml Powerautomate-控制Edge-浏览器-报错-Failed to assume control of Microsoft Edge (communication with Power Automate web extension failed) 关于-密码学算法中-类似-编程函数pow(3, 13, 7)的计算-快速幂算法结合模运算(Exponentiation by Squaring with Modular Reduction) 关于AWS-EC2-串口登录的-IAM权限-Policy-策略 关于 AWS Lambda 中的默认的时区-日期-时间-注意点 关于使用 javascript 脚本语言中的 location.reload() 刷新当前页面 关于Bash - Shell脚本中的索引数组(Indexed Array) 关于Linux系统中-使用passwd对用户密码的锁定与解锁 关于 Redhat - 9 - 补丁升级后-旧版本内核相关的软件包卸载 关于 Redhat - 9 下 postfix 的安装配置 与 mail 命令发送邮件 关于 Amazon Linux 2023 (AL2023) 默认情况下确实没有 /var/log/secure 文件的解决方法 关于-HTML-内容-元素定位- CSS Selector 与 XPath 的说明及区别 关于Microsoft Power Automate-操作-Microsoft Access 数据库-【运行Access查询】 关于 Javascript 中 console.log("xxxx")-及console-对象其他常用的方法 关于Provider=Microsoft.ACE.OLEDB.12.0 与 Provider=Microsoft.ACE.OLEDB.16.0 的区别 通过Powershell-脚本-将指定的日期-转换成年周-格式-周数宽度为2 关于Windows-操作系统中-对带日期-或-数字-的文件目录-按名称排序的规则 关于Microsoft Power Automate-元素的定位-自定义写法去定位时-:nth-child 与 :eq 的区别 关于标准CSS伪类-以及在-Power Automate-等自动化工具中的使用 关于-根据-ISO8601-国际标准-计算一年中的周数-每年最少52周-每多53周 Redhat-9-中编译-EFS-客户端工具-即过程中-报错提示-warning: aws-lc-fips-sys@0.13.9: Building with: CMake-解决方法 关于Microsoft Power Automate-调用-Outlook-发送邮件-报错- A program is trying to access emal address information stored in Outlook 关于powershell中的-哈希表-Hashtable-类型-说明-类似于python中的字典 关于HTML中<font><b><i><s>等字体标签对-物理字体-逻辑字体的介绍及说明
关于使用-Python-Selenium-模块-加载浏览器的扩展-的方法及注...
520_1351 · 2025-12-26 · via 博客园 - 520_1351

最近在使用selenium实现浏览器自动化,使用的 inprivate 无痕模式, 加载过一个 扩展

但是又同时需要加载另一个PAD的扩展,按如下写法就发现,生效的只有最后一个

options.add_argument(r"--load-extension=C:\Users\qq5201351\AppData\Local\Microsoft\Edge\User Data\Default\Extensions\kagpabjoboikccfdghpdlaaopmgpgfdc\2.61.0.32_0")
options.add_argument(r"--load-extension=C:\Users\qq5201351\AppData\Local\Microsoft\Edge\User Data\Default\Extensions\kjldmpkefedgljefehmmfifbhnjngmbh\3.11.9_0") 

最后通过查询才了解到:

在使用 --load-extension 参数加载多个 Edge 扩展时,只有最后一个扩展被成功加载,第一个没有生效。

这是 Chromium 内核浏览器(包括 Microsoft Edge)的一个已知限制:

Chromium 不支持通过多次使用 --load-extension 参数加载多个扩展。如果多次指定该参数,只有最后一个会被加载。

正确的解决方法:要加载多个扩展,必须将所有扩展的路径用逗号 , 连接成一个字符串,然后只调用一次 --load-extension。

class CustomEdgeWebDriver(webdriver.Edge):
    
    def __init__(self,role="",private_mode=False,headless=False):
        # 初始化浏览器选项,创建实例的时候可以选择不传入 role="xxx" 参数
        custom_options = self._configure_options(role,private_mode,headless)
        super().__init__(options=custom_options)  # 调用父类构造函数传入配置
    
    def _configure_options(self,role,private_mode,headless):
        """封装自定义配置项"""
        options = Options()
        options.add_argument("--start-maximized")
        options.add_argument("--disable-blink-features=AutomationControlled")
        options.add_experimental_option("excludeSwitches", ["enable-automation"])
        options.add_argument("--force-device-scale-factor=1.1")
        options.add_experimental_option("detach", True)

        if private_mode:
            options.add_argument("inprivate")
            
        if headless:
            options.add_argument('--headless')
       
        if role=="pam":
            ext_PAD = r"C:\Users\qq5201351\AppData\Local\Microsoft\Edge\User Data\Default\Extensions\kagpabjoboikccfdghpdlabopmgpgfdc\2.61.0.32_0"
            ext_Delinea = r"C:\Users\qq5201351\AppData\Local\Microsoft\Edge\User Data\Default\Extensions\kjldmpkffedgljefehmmfifbhnjngmbh\3.11.9_0"
            options.add_argument(f"--load-extension={ext_PAD},{ext_Delinea}")
            
                
        return options

补充说明:

这个行为在 Chrome 和 Edge 中一致,因为它们都基于 Chromium。

官方文档或命令行帮助中通常不会明确说明这一点,但社区和开发者实践中广泛验证了此限制。

如果你尝试在启动参数中写两次 --load-extension=...,Chromium 会覆盖前一个值,只保留最后一个。

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/19404343