Python:Selenium Firefox Webdriver 失败并出现错误:“无法加载配置文件...WARN addons.xpi...”

Posted

技术标签:

【中文标题】Python:Selenium Firefox Webdriver 失败并出现错误:“无法加载配置文件...WARN addons.xpi...”【英文标题】:Python: Selenium Firefox Webdriver failing with error: 'Can't load the profile...WARN addons.xpi..." 【发布时间】:2014-01-24 07:54:05 【问题描述】:

我正在尝试运行以下 Python 代码以通过 Selenium 创建一个 Firefox Webdriver 窗口:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.google.com")

虽然这段代码在几周前运行良好,但它现在会产生以下不祥的信息:

 Traceback (most recent call last):
  File "test.py", line 2, in <module>
    driver = webdriver.Firefox()
  File "c:\python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 60, in __init__
    self.binary, timeout),
  File "c:\python27\lib\site-packages\selenium\webdriver\firefox\extension_connection.py", line 47, in __init__
    self.binary.launch_browser(self.profile)
  File "c:\python27\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 61, in launch_browser
    self._wait_until_connectable()
  File "c:\python27\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 105, in _wait_until_connectable
    self.profile.path, self._get_firefox_output()))
selenium.common.exceptions.WebDriverException: Message: 'Can\'t load the profile. Profile Dir: c:\\users\\douglas\\appdata\\local\\temp\\tmpuf4ipq Firefox output: *** LOG addons.xpi: startup\r\n*** WARN addons.xpi: Ignoring missing add-on in C:\\Program Files\\CheckPoint\\ZAForceField\\WOW64\\TrustChecker\r\n*** WARN addons.xpi: Ignoring missing add-on in C:\\ProgramData\\Norton\\78CA3BF0-9C3B-40e1-B46D-38C877EF059A\\NSM_2.9.5.20\\coFFFw\r\n*** LOG addons.xpi: Skipping unavailable install location app-system-local\r\n*** LOG addons.xpi: Skipping unavailable install location app-system-share\r\n*** LOG addons.xpi: checkForChanges\r\n*** LOG addons.xpi: No changes found\r\n*** Blocklist::_loadBlocklistFromFile: blocklist is disabled\r\n************************************************************\r\n* Call to xpconnect wrapped JSObject produced this error:  *\r\n[Exception... "\'[javascript Error: "this._defaultEngine is null" file: "resource://gre/components/nsSearchService.js" line: 3527]\' when calling method: [nsIBrowserSearchService::currentEngine]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: chrome://browser/content/search/search.xml :: get_currentEngine :: line 130"  data: yes]\r\n************************************************************\r\n************************************************************\r\n* Call to xpconnect wrapped JSObject produced this error:  *\r\n[Exception... "\'[JavaScript Error: "this._defaultEngine is null" file: "resource://gre/components/nsSearchService.js" line: 3527]\' when calling method: [nsIBrowserSearchService::currentEngine]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: chrome://browser/content/search/search.xml :: get_currentEngine :: line 130"  data: yes]\r\n************************************************************\r\n************************************************************\r\n* Call to xpconnect wrapped JSObject produced this error:  *\r\n[Exception... "\'[JavaScript Error: "this._defaultEngine is null" file: "resource://gre/components/nsSearchService.js" line: 3527]\' when calling method: [nsIBrowserSearchService::currentEngine]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: resource://app/components/nsBrowserGlue.js :: <TOP_LEVEL> :: line 354"  data: yes]\r\n************************************************************\r\n************************************************************\r\n* Call to xpconnect wrapped JSObject produced this error:  *\r\n[Exception... "\'[JavaScript Error: "this._defaultEngine is null" file: "resource://gre/components/nsSearchService.js" line: 3527]\' when calling method: [nsIBrowserSearchService::currentEngine]"  nsresult: "0x80570021 (NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS)"  location: "JS frame :: resource://app/components/nsBrowserGlue.js :: <TOP_LEVEL> :: line 354"  data: yes]\r\n************************************************************\r\n'

有谁知道这意味着什么,或者我可以做些什么来纠正错误并让代码按预期运行?我通过 Google 搜索找到了相关的错误消息,但没有任何东西可以让我解决问题。

无论如何,我可以通过将上面的第二行更改为 driver = webdriver.Chrome() 来毫无问题地打开 Chrome Webdriver。

我在 Windows 8 机器上使用 Python 2.7、Selenium 2.35.0(我刚刚运行“pip install selenium --upgrade”)和 Firefox 26.0。非常感谢其他人提供的任何提示或建议。

【问题讨论】:

一个有点切题但非常有用的其他question on how to prevent Selenium from making temporary Firefox profiles 最终帮助了我很多,对于下一个到达这里的人......它的价值。 【参考方案1】:

Selenium 2.35 与 Firefox 26 不兼容。正如 release notes 所说,在 Selenium 2.39 中添加了对 FF 26 的支持。您需要更新到 2.39。请改用pip install -U selenium

【讨论】:

我跑了pip install -U selenium,它似乎升级了硒,但我仍然收到相同的错误消息。非常欢迎任何其他建议 您发布的跟踪不是来自您发布的代码示例。您的机器上是否安装了多个 Python?您确定您仍然收到 same 错误,而不是 类似 错误吗? 非常感谢,@Silas Ray;我刚刚更新了上面发布的代码生成的错误消息。我相信我在这台机器上只有 2.7。再次感谢您的帮助。 由于某种原因,它似乎无法加载用户配置文件。它也在抱怨一堆丢失/不兼容的 Firefox 插件,但这些都是警告。您没有尝试使用自定义配置文件,是吗? webdriver.xpi 位于站点包中的 Selenium 包分发中。每次创建 Firefox 实例时,它都会被复制到 tmp 目录,然后在启动时加载到浏览器中。使用 pip 更新 selenium 应该更新了 xpi 文件(实际上是在浏览器中驱动 Selenium 操作的 Firefox 插件),当您使用 webdriver.Firefox() 实例化时会启动该文件。 Firefox 配置文件虽然相关但有所不同,因为它们定义了要加载的插件,Selenium 将 Selenium 插件添加到它使用的动态复制配置文件列表中。【参考方案2】:

不确定它在 Windows 上是否也能正常工作,但对我来说,Firefox 26 和 selenium 2.37.0 的组合工作正常。

【讨论】:

【参考方案3】:

我在 Win8.1 FF28 和 python3.4/selenium 2.41 中也有这个问题。但是在我将FF降级到24之后,它起作用了!而且我还在 Win8.1/FF27/Python3.4/Selenium 2.41 中进行了测试,它也有效。

【讨论】:

【参考方案4】:

我刚刚在 FF36 和 selenium 2.44.0 中遇到了同样的问题。重新安装 FF 32.0 修复它。

【讨论】:

【参考方案5】:

我在 Kubuntu 14.04 桌面上遇到了同样的问题,我删除了 Firefox 47.XX 并重新安装了 Firefox 45.XX 并解决了问题。

下载firefox debian包

apt-get purge firefox dpkg -i firefox-XXXXXXXXXX.deb

【讨论】:

以上是关于Python:Selenium Firefox Webdriver 失败并出现错误:“无法加载配置文件...WARN addons.xpi...”的主要内容,如果未能解决你的问题,请参考以下文章

python中用selenium调Firefox报错问题

python+selenium自动化环境搭建之后,能打开firefox,却不能执行自动化操作

selenium3+Python+firefox53 兼容问题

python+selenium启动firefox和chrome

Firefox配置文件加载(Selenium+Python)

Selenium + Firefox + Python:下载目录问题