在 Ubuntu 上启动 Firefox 时 Selenium 挂起
Posted
技术标签:
【中文标题】在 Ubuntu 上启动 Firefox 时 Selenium 挂起【英文标题】:Selenium hangs when launching Firefox on Ubuntu 【发布时间】:2011-11-01 13:27:51 【问题描述】:我的最终目标是让 Selenium 在 Jenkins 内部运行。 我的 Jenkins 安装在 Ubuntu 虚拟机中运行。
在 jenkins selenium 设置出现一些问题后(源于运行 jenkins 的用户的权限),我切换到从命令行运行命令以查看发生了什么。我的目标是让测试在这里运行,然后让它在 Jenkins 中运行。
这是我目前正在使用和看到的命令和响应。
resn@resn-VirtualBox:~$ sudo java -jar /var/lib/jenkins/tools/selenium/selenium-server.jar -htmlSuite *firefox http://google.com "/var/lib/jenkins/jobs/Selenium setup test/workspace/tests/test-testsuite.html" "/var/lib/jenkins/jobs/Selenium setup test/workspace/results/results.html" -log=/tmp/selenium.log -debug=true -firefoxProfileTemplate "/home/resn/.mozilla/firefox/6f2um01h.Selenium"
23/08/2011 11:19:51 AM org.openqa.grid.selenium.GridLauncher main
INFO: Launching a standalone server
11:19:52.172 INFO - Java: Sun Microsystems Inc. 19.0-b09
11:19:52.173 INFO - OS: Linux 2.6.35-28-generic i386
11:19:52.223 INFO - v2.4.0, with Core v2.4.0. Built from revision 13337
11:19:52.488 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
11:19:52.491 INFO - Version Jetty/5.1.x
11:19:52.491 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
11:19:52.501 INFO - Started HttpContext[/selenium-server,/selenium-server]
11:19:52.501 INFO - Started HttpContext[/,/]
11:19:52.520 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@15b7986
11:19:52.521 INFO - Started HttpContext[/wd,/wd]
11:19:52.530 INFO - Started SocketListener on 0.0.0.0:4444
11:19:52.530 INFO - Started org.openqa.jetty.jetty.Server@54172f
11:19:53.379 INFO - Preparing Firefox profile...
11:19:55.949 INFO - Launching Firefox...
Ubuntu 虚拟机不是无头实例,因此我不需要安装 xvfb(正如在同一主题的一些博客文章中提到的那样)。
在此问题之前,我遇到了 Firefox 配置文件的问题,我使用我在此处回答的方法修复了该问题:Jenkins can't launch selenium tests (Timed out waiting for profile to be created)
使用“应用程序”菜单中的快捷方式启动 Firefox 时,Firefox 可以正常打开,并且只需在命令行中输入“firefox”即可。
我尝试通过多种方式将完整路径添加到 Firefox 应用程序:
在命令“... *firefox /usr/lib/firefox-3.6.20/firefox.sh ...”中导致“找不到 HTML 套件文件:/home/resn/http:/ google.com:" - 似乎将 firefox 路径与下一个参数混淆了在命令中,没有空格 '..."firefox/usr/lib/firefox-3.6.20/firefox.sh ...' 导致
"看到的 HTML 套件异常: java.lang.RuntimeException:不支持浏览器:*firefox/usr/lib/firefox-3.6.20/firefox.sh
支持的浏览器包括: *火狐"
在 grid_configuration.yml ' ...浏览器中:“*firefox /usr/lib.firefox-3.6.20/firefox.sh”。没有任何影响。此外,由于进程只是挂起,实际上并没有失败,因此不会创建日志文件 (/tmp/selenium.log)。
非常欢迎任何想法、提示或调试建议!
【问题讨论】:
Ubuntu 10.10。升级到 11 会有帮助吗? 我明白了,我在 Fedora 14 上运行 【参考方案1】:我也遇到了同样的问题,但我找到的解决方案都没有:
firefox 可执行路径没有问题 无头显示器已在运行 浏览器配置文件没有问题我所做的是尝试手动运行 firefox(在设置 DISPLAY 之后) - 我得到了错误:
D-Bus 库似乎设置不正确;无法读取机器 uuid:无法打开 /var/lib/dbus/machine-id
我不知道这个问题是如何突然发生的,但解决起来相对简单:
dbus-uuidgen > /var/lib/dbus/machine-id
根据http://www.torkwrench.com/2011/12/16/d-bus-library-appears-to-be-incorrectly-set-up-failed-to-read-machine-uuid-failed-to-open-varlibdbusmachine-id
【讨论】:
【参考方案2】:问题似乎是在无头环境中运行时。如果您没有用于呈现浏览器的窗口,它将挂起。您可以通过在 ssh 到您的机器时粘贴相同的命令来测试这一点,而是执行 ssh -X me@server.com
我找到了有关如何解决此问题的文档: http://www.alittlemadness.com/2008/03/05/running-selenium-headless/
【讨论】:
一旦你按照安装程序安装了它,在运行 selenium 之前将 "Xvfb :100 -ac &" 放入运行的 shell 脚本中。还将 DISPLAY 放在 hudson 的管理设置中以添加环境变量。以上是关于在 Ubuntu 上启动 Firefox 时 Selenium 挂起的主要内容,如果未能解决你的问题,请参考以下文章
使用 selenium 使用 Firefox 启动网页 [重复]
ubuntu firefox Firefox is already running, but is not responding