python - geckodriver 不会使用 Profile 加载扩展?
问题描述
在无头和非无头模式下,我正在尝试使用 geckodriver 加载 Firefox 开发版配置文件。Firefox 可以正常打开,并且在扩展列表中,我确实看到了我在该配置文件中正常使用的扩展。但是,没有一个扩展真正起作用,如果我去“调试扩展”并检查每个扩展,我会看到Error: Protocol Error (unknownError): Extension not found: <extension name>
.
具体来说,我将 Python 与 Selenium 一起使用,FirefoxProfile("<profilepath>")
.
Geckodriver.log 确实显示JavaScript error: resource://gre/modules/XULStore.jsm, line 66: Error: Can't find profile directory.
,但配置文件目录是正确的并且正在加载(因为它显示了 Firefox 中列出的正确插件)。
解决方案
似乎当您使用现有配置文件启动 FF 时,附加组件显示在 about:addons 中,但没有任何作用。我认为主要原因是FF在临时Windows文件夹中复制了配置文件,并且一些路径信息在某处丢失了。
所以我的解决方案是将扩展加载为临时的。
您从派生类启动 webdriver,然后传递 .xpi 的地址。无需搜索服务器地址和 sessionId,它就在那里。
推荐阅读
- javascript - 画布线性渐变采用另一个输入类型颜色字段的值
- php - 在另一个 foreach 中提高 foreach 的性能
- php - php中某些标点符号之前的粗体部分
- java - 通过 Java 中的 MP3 源流式传输音频
- html - 从带有事件代码的 HTML 下拉列表(SELECT 标记和 OPTIONS 标记)中选择的 VBA 代码
- java - 初始化应用程序上下文后,如何在 Spring Boot 中连接到多个数据源?
- dataframe - 如何验证 Pyspark 中列的日期格式?
- java - Android 文件系统 - 即使我有权限也无法写入文件
- python - 在python中合并两个熊猫数据框
- ios - iOS 14.0.1 崩溃问题