【问题标题】:why firefox won't start up under selenium 2 webdriver on redhat 5.6为什么 firefox 不会在 redhat 5.6 上的 selenium 2 webdriver 下启动
【发布时间】:2012-05-27 20:52:41
【问题描述】:

我想知道是否有人对我如何找出我的原因有任何想法 似乎可以通过 selenium webdriver 运行 firefox。什么 发生在我跑步时:

self.driver=webdriver.Firefox()

我的桌面上有一个空白对话。我在 Redhat 5.6 上运行并且 我的硒版本是 2.21.3。我尽可能地调试了代码 并且从我可以确定的代码在调出后冻结 firefox_binary 模块中以下代码的空白对话框:

Popen([self._start_cmd, "-slient"], stdout=PIPE, stderr=STDOUT, env=self._filefox_env).wait()

我打开了一个 cmd 提示符并手动运行了上述命令 并且没有出现这样的空白对话框。这会让我觉得它 不是 Firefox 错误。我找不到这个错误会在哪里 出现。有任何想法吗?

更新

我安装了 centos 6 并安装了 firefox 10.0.6 和 selenium webdriver 使用该版本

更新

除了使用 centos 6,我还需要在 redhat 上解决这个问题,所以这里有更多细节和我发现的内容。因为它需要解决,所以我会悬赏:

我对此进行了深入研究,发现问题出在使用 32 位库的 selenium 上。 我在使用 Firefox ESR 10.0.6(64 位)的 Redhat Enterprise Linux Server 版本 5.6 (x86_64) 上有 selenium 版本 2.25.0。 我更改了firefoxBinary类中的_start_from_profile_path方法,看看问题出在哪里:

p=open("/tmp/ffoutput.txt", "w+")
Popen([self._start_cmd, "-silent"], stdout=p, stderr=STDOUT, env=self._firefox_env).communicate()

我跟踪了 /tmp/ffoutput.txt 我发现 selenium 正在尝试使用 32 位库:

Failed to dlopen /usr/lib/libX11.so.6
dlerror says: /usr/lib/libX11.so.6: wrong ELF class: ELFCLASS32

此消息连续出现,Firefox 挂起并显示一个空白对话框。我用谷歌搜索了这个问题,发现有些人在抱怨,但没有有效的解决方案(我尝试在移动 32 位库后将 64 位库软链接到 32 位库目录,但这导致 geko 崩溃,我尝试将连续错误发送到 /dev /null 但这没有解决任何问题)。

【问题讨论】:

  • 无异常,无日志?嗯。它是否一直有效,或者这是您第一次尝试通过 WebDriver 运行 FF?您可以尝试通过向构造函数提供路径来启动 Firefox 吗?
  • 这是我第一次使用红帽盒子。我让它在 Windows 盒子上运行。我检查了 self._start_cmd 并发现它是 firefox 的正确路径。正如我所说,我在调试下检查了正在使用的命令,我发现它是 /usr/bin/firefox -silent。我在终端中运行它并且没有错误。我还运行了 /usr/bin/firefox (没有 -slent )并出现了 firefox。当 webdriver 用户时,上述代码 firefox 没有打开,redhat 桌面显示一个空白对话框。
  • 没有添加到 /var/log/messages 来告诉我任何事情(firefox 将其日志记录在哪里)。
  • 点赞并加星标。我也对这个原因很感兴趣。如果没有任何帮助,您可以尝试讨论组或官方 IRC - seleniumhq.org/support,这可能只是一个错误。
  • stackoverflow 在获得答案方面似乎比官方 IRC 更好(来自以前的问题)。

标签: firefox selenium webdriver redhat


【解决方案1】:

如果您指的是 Selenium 中报告的此问题 http://code.google.com/p/selenium/issues/detail?id=2852

在 64 位 linux 发行版上的解决方法是发出以下命令:

sudo mv /usr/lib/libX11.so.6 /usr/lib/libX11.so.6.old
sudo ln -s /usr/lib64/libX11.so.6.3.0 /usr/lib/libX11.so.6

这在我的盒子上对我有用。

【讨论】:

  • 从第二次更新“我尝试在移动 32 位库后将 64 位库软链接到 32 位库目录,但这导致 geko 崩溃”所以不幸的是这对我不起作用
猜你喜欢
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 2017-07-30
相关资源
最近更新 更多