Python3.5 和 FF48 的 Selenium WebDriver 出现“无法加载配置文件”错误

Posted

技术标签:

【中文标题】Python3.5 和 FF48 的 Selenium WebDriver 出现“无法加载配置文件”错误【英文标题】:"Can't load the profile" error occured with Selenium WebDriver by Python3.5 and FF48 【发布时间】:2017-01-19 00:27:01 【问题描述】:

我正在尝试将 Selenium 与 Python 结合使用。 因此,我编写了以下代码并保存为工作目录 /Users/ykt68/seleniumwork 中名为 test.py 的文件。

[ykt68@macbp15 seleniumwork]$ pwd
/Users/ykt68/seleniumwork
[ykt68@macbp15 seleniumwork]$ cat -n test.py
     1  #! /usr/bin/env python
     2  # -*- encoding: utf-8 -*-
     3  
     4  from selenium import webdriver
     5  from selenium.webdriver.common.keys import Keys
     6  
     7  driver = webdriver.Firefox()
     8  driver.get("http://www.python.org")
     9  assert "Python" in driver.title
    10  elem = driver.find_element_by_name("q")
    11  elem.clear()
    12  elem.send_keys("pycon")
    13  elem.send_keys(Keys.RETURN)
    14  assert "No results found." not in driver.page_source
    15  driver.close()
[ykt68@macbp15 seleniumwork]$

 上面这些代码与Selenium with Python文档中的2.1 Simple Usage相同。

 当我为上面的 test.py 运行 python 命令时,

FireFox 浏览器启动并打开了一个空白选项卡。 大约 30 秒后,显示以下错误消息并关闭 FireFox 窗口。
[ykt68@macbp15 seleniumwork]$ python test.py 
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    driver = webdriver.Firefox()
  File "/Users/ykt68/.pyenv/versions/seleniumwork/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 80, in __init__
    self.binary, timeout)
  File "/Users/ykt68/.pyenv/versions/seleniumwork/lib/python3.5/site-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in    __init__
    self.binary.launch_browser(self.profile, timeout=timeout)
  File "/Users/ykt68/.pyenv/versions/seleniumwork/lib/python3.5/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 68, in launch_browser
    self._wait_until_connectable(timeout=timeout)
  File "/Users/ykt68/.pyenv/versions/seleniumwork/lib/python3.5/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 108, in _wait_until_connectable
    % (self.profile.path))
selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: /var/folders/86/55p1gj4j4xz2nw9g5q224bk40000gn/T/tmpf0uolidn If you specified a log_file in the FirefoxBinary constructor, check it for details.

[ykt68@macbp15 seleniumwork]$

 请教我为什么会发生此错误以及如何解决问题或列出一些我应该参考的帖子或文档。

 此外,

    环境: 操作系统:Apple OS X 版本 10.11.6 Python 版本:3.5.2 FireFox 版本:48.0.2 硒版本:2.53.6
[ykt68@macbp15 seleniumwork]$ python -V
Python 3.5.2
[ykt68@macbp15 seleniumwork]$ /Applications/Firefox.app/Contents/MacOS/firefox -v
Mozilla Firefox 48.0.2
[ykt68@macbp15 seleniumwork]$ /Applications/Firefox.app/Contents/MacOS/firefox-bin -v
Mozilla Firefox 48.0.2
[ykt68@macbp15 seleniumwork]$ pip list
pip (8.1.2)
selenium (2.53.6)
setuptools (20.10.1)
[ykt68@macbp15 seleniumwork]$
    我参考了类似的帖子 Selenium: FirefoxProfile exception Can't load the profile。所以我尝试了
pip install -U selenium

但是上面有错误信息的情况没有改变。

最好的问候。

【问题讨论】:

【参考方案1】:

根据我的理解和结论,您可以保留最新的 selenium 软件包版本,但您必须将 Firefox 降级到 47(47.0.1 是 47 分支的最新稳定版本)。

【讨论】:

感谢您的指导。根据您的建议,我删除了 FF48,然后安装了 FF47 进行降级。然后运行python test.py,它成功了!

以上是关于Python3.5 和 FF48 的 Selenium WebDriver 出现“无法加载配置文件”错误的主要内容,如果未能解决你的问题,请参考以下文章

三元运算符python3.5的列表推导

Selenium2学习-042-Selenium3启动Firefox Version 48.x浏览器(ff 原生 geckodriver 诞生)

简单网络知识点

与 FF 和 Chrome 相比,IE 的渲染字体不同

FF 不显示自动换行 CSS 属性

如何使用 cpuid 获取 TLB 页面大小