【发布时间】:2015-02-03 23:28:54
【问题描述】:
为了我的研究,我在 Firefox 中做了一些源代码修改并自己构建。为了自动化测试,我选择使用 Selenium,但不幸的是,我新建的 Firefox 似乎不支持 Selenium。
我做了以下事情:
from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
binary = FirefoxBinary("/path/to/firefox/binary")
d = webdriver.Firefox(firefox_binary=binary)
d.get("http://www.google.de")
Firefox 确实打开并且响应迅速(我可以在搜索栏中输入网站)。但过了一会儿,python 脚本崩溃并显示以下错误消息:
Traceback (most recent call last):
File "firefox.py", line 7, in <module>
d = webdriver.Firefox(firefox_binary=binary)
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
self.binary, timeout),
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
self.binary.launch_browser(self.profile)
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 66, in launch_browser
self._wait_until_connectable()
File "/usr/local/lib/python3.4/dist-packages/selenium/webdriver/firefox/firefox_binary.py", line 109, in _wait_until_connectable
raise WebDriverException("Can't load the profile. Profile "
selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Profile Dir: %s If you specified a log_file in the FirefoxBinary constructor, check it for details.
我确实在谷歌上搜索了该错误消息和建议的大多数解决方案,我应该更新 Selenium,因为它不支持使用的 Firefox 版本。不幸的是,我安装了最新版本的 selenium (2.44.0),我什至使用了旧版本的 Firefox(版本 33)来排除这一点。
我还通过构建一个干净、未修改的 firefox 来确保我的代码修改不是导致崩溃的原因。 Selenium 也不适用于这个 Firefox。
如果我不指定 Firefox 二进制文件并让 Selenium 使用已安装的 Firefox,那么一切正常。所以我的猜测是,firefox 构建有问题,我完全按照在线文档中的说明进行了操作(例如 ./mach build)。
有谁知道我的错误可能是什么?非常感谢任何帮助!
一些设置信息:
- 火狐33
- 硒 2.44.0
- Python 3.4(也试过 2.7,也不行)
- Firefox 使用 Ubuntu 14.04 构建
【问题讨论】:
-
这是一个零星的问题还是一致的?我也看到了这一点,但只是有时(FF34、selenium2.44.0、python2.7、ubuntu12.04)。我确实觉得这很奇怪,这发生在你的剧本中间。请注意,除非您指定新配置文件,否则默认配置文件将保存到 /tmp 目录,因此请确保您没有任何脚本或任何可能删除配置文件的东西。
标签: python firefox selenium build