Firefox 无法通过ssh启动selenium的浏览器
我正在尝试设置一个linux机箱(未连接显示器)作为selenium服务器运行。如果我连接了一个监视器并登录到这个框中,那么我就可以运行selenium测试了,没有问题。如果我尝试通过ssh运行测试,那么测试会失败,原因是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
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″);