首页 > 解决方案 > 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 中列出的正确插件)。

标签: pythonseleniumgeckodriver

解决方案


似乎当您使用现有配置文件启动 FF 时,附加组件显示在 about:addons 中,但没有任何作用。我认为主要原因是FF在临时Windows文件夹中复制了配置文件,并且一些路径信息在某处丢失了。

所以我的解决方案是将扩展加载为临时的。

如何使用新的 geckodriver 端点?

您从派生类启动 webdriver,然后传递 .xpi 的地址。无需搜索服务器地址和 sessionId,它就在那里。


推荐阅读