Firefox 无法通过ssh启动selenium的浏览器

Firefox 无法通过ssh启动selenium的浏览器,firefox,ubuntu,selenium,Firefox,Ubuntu,Selenium,我正在尝试设置一个linux机箱(未连接显示器)作为selenium服务器运行。如果我连接了一个监视器并登录到这个框中,那么我就可以运行selenium测试了,没有问题。如果我尝试通过ssh运行测试,那么测试会失败,原因是 Failed to start new browser session, shutdown browser and clear all session data java.lang.RuntimeException: Timed out waiting for profile

我正在尝试设置一个linux机箱(未连接显示器)作为selenium服务器运行。如果我连接了一个监视器并登录到这个框中,那么我就可以运行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浏览器是Firefox5,操作系统是Ubuntu11.04

我用它来工作。因此,首先安装xvfb:

sudo apt-get install xvfb
然后运行它

Xvfb :99 -ac
然后启动selenium服务器

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

您之所以会出现此错误,是因为没有可打开firefox的监视器,这会让您感到困惑

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

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

然后开始运行,并将显示设置为系统不会使用的内容。这就是我要做的,记住
&
使终端在后台运行。
Xvfb:99-ac&

导出显示=:99

firefox&

当我退出ssh终端时,我还遇到了RubyonRails服务器断开连接的问题。要解决该问题,请使用屏幕。Screen在不受ssh影响的情况下运行另一个终端。
sudo apt get安装屏幕

然后在你做上面的事情之前先启动屏幕。
屏幕


要退出当前屏幕窗口,只需单击“Ctrl+A”并返回screen-r类型。

有一种使用imagemagick screen Shot进行测试的好方法

安装mozilla firefox headless(无GUI)

在虚拟gui上启动firefox

DISPLAY=:1 firefox http://google.com &
–测试和检查

Xvfb :1 -screen 1 1024x768x24 &
ps -ef |grep firefox
使用imagemagic获得打印屏幕,以确保其正常工作。 DISPLAY=:1导入-窗口根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″);

在不连接显示器的情况下,您是否能够使用ssh在该机器上手动打开firefox浏览器?这里的线程类似:python selenium webdriver也可以这样做。
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″);