当前位置: 首页 > 知识库问答 >
问题:

Firefox Build不能与Selenium一起工作

梅安平
2023-03-14

为了我的研究,我在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,也不起作用)
  • 使用Ubuntu 14.04构建Firefox

共有1个答案

薛浩言
2023-03-14

Ubuntu 14.04、firefox 36.0、selenium 2.44.0。同样的问题,被解决了:

sudo pip install -U selenium

硒2.45.0与FF36是可以的。

更新:Selenium 2.53+与FF45兼容

您可以在这里获得更老的FF版本

 类似资料:
  • 根据它的Javadoc,将生成,其中的第一个值是subscribe和第一个next信号之间的经过时间。 以下测试不起作用 它将抛出异常: 我原以为经过的时间至少是1000ms,但结果只有11ms。

  • pom.xml版本信息: SpringFox-Swagger2:2.5.0 昂首阔步-核心:1.5.10 springfox-swagger-ui:2.6.1 Springboot:1.5.3 我有一个项目与swagger2和Springboot。 没有@Aspect的项目代码工作得很好。 正确的结果: 但是当我添加以下代码时,swagger-ui没有显示test-api-impl。 swagge

  • Selenium版本:2.41.0(作为Nuget包安装)OS:Windows7浏览器:Firefox浏览器版本:32

  • 我试图构建的是一个spring-boot(V1.2.3)应用程序,并使用SpringFox(swagger2)V2.0.0公开我的Rest API 我的大摇大摆的Spring配置 以下是如果不使用: 有没有一个解决方案来创建一个正确的、没有价值和逃避的大摇大摆的JSON?

  • 我问这个问题是因为我知道这个线程和这个线程,还有关于同一主题的其他线程,但是每个人在第一个线程中转发的解决方案都不再起作用了。因此,请不要将此标记为关闭,因为第一个线程存在。答案来自2016年,你可以看到更多最近的评论有麻烦。 我在用硒做一些轻微的网刮。我正在与之交互的一个站点显然检测到我的浏览器是自动的(但奇怪的是,只要我也访问了我所在区域之外的站点的版本,我就只关心它,但这并不在这里也不在那里

  • 但是在我使用运行应用程序的服务器上,环境变量仍然。 我用来在服务器上运行应用程序的pm2命令是: