关于使用-Python-Selenium-模块-加载浏览器的扩展-的方法及注意事项-及只能加载一个扩展的解决方法
Posted on 2025-12-26 13:37 520_1351 阅读(0) 评论(0) 收藏 举报最近在使用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
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!
浙公网安备 33010602011771号