无法通过ssh启动selenium浏览器

时间:2011-08-18 15:17:13

标签: firefox ubuntu selenium

我正在尝试设置一个linux盒子(没有连接显示器)作为selenium服务器运行。如果我连接显示器并登录盒子,那么我可以运行硒测试没问题。如果我尝试通过ssh运行测试,那么测试将失败

Failed to start new browser session, shutdown browser and clear all session data
java.lang.RuntimeException: Timed out waiting for profile to be created!
at  org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.waitForFullProfileToBeCreated(FirefoxChromeLauncher.java:360)
at org.openqa.selenium.server.browserlaunchers.FirefoxChromeLauncher.populateCustomProfileDirectory(FirefoxChromeLauncher.java:114)

我认为这与显示器的缺席/存在有关。有什么想法吗?

PS浏览器是firefox 5,操作系统是Ubuntu 11.04

3 个答案:

答案 0 :(得分:11)

我使用xvfb让它工作。所以先安装xvfb:

sudo apt-get install xvfb

然后运行它

Xvfb :99 -ac

然后启动selenium服务器

DISPLAY=:99 java -jar selenium-server-standalone-2.4.0.jar

答案 1 :(得分:0)

Here is my answer

你得到这个错误,因为没有监视器打开firefox,它会变得混乱。

安装Xvfb,假装是一个监视器,但不会出现在任何地方。
sudo apt-get install xvfb

如果您想减少错误,请添加这些字体,但这些警告并不重要。
sudo apt-get install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic

然后开始运行并将显示设置为系统不会使用的内容。以下是我的工作,请记住&使终端在后台运行。
Xvfb :99 -ac &
export DISPLAY=:99
firefox &

当我退出ssh终端时,我在rails服务器断开连接时遇到问题。要解决该问题,请使用Screen。屏幕运行另一个终端而不受ssh的影响。
sudo apt-get install screen

然后在你执行上述操作之前先启动屏幕。
screen

要离开当前屏幕窗口,只需点击“Ctrl + A”然后返回类型屏幕-r。

答案 2 :(得分:0)

有一种很好的方法可以使用imagemagick屏幕拍摄进行测试

安装mozilla firefox无头(无GUI)

yum install xorg-x11-server-Xvfb.x86_64 xfonts-base xfonts-75dpi xfonts-100dpi firefox ImageMagick.x86_64

在虚拟gui上启动firefox

DISPLAY=:1 firefox http://google.com &

- 测试并检查

Xvfb :1 -screen 1 1024x768x24 &
ps -ef |grep firefox

使用imagemagic获取打印屏幕,以确保其正常工作。 DISPLAY =:1 import -window root google.com.png

(可选)在firefox配置文件中设置代理

vi /root/.mozilla/firefox/ns11i9xo.default/prefs.js
user_pref(“network.proxy.http”, “proxyserver”);
user_pref(“network.proxy.http_port”, 8080);
user_pref(“network.proxy.no_proxies_on”, “localhost, 127.0.0.1, 172.17.0.0/16, 10.5.0.0/16″);

http://felipeferreira.net/?p=1220