2013-12-18 133 views
0

我在Ubuntu Server 13.04上运行LAMP配置。我将XVFB和Selenium作为服务(/etc/init.d)在启动时加载。如果我在终端会话中打开它之前导出DISPLAY,则Firefox正在工作,但是我不试图在终端会话中进行测试;我使用PHPWebDriver来调用WebDriver的一个实例。Selenium WebDriver Firefox

当试图打开一个会话像这样:

$driver_include = "/includes/user/webdriver/__init__.php"; 
require $driver_include; 
$wd_host = 'http://localhost:4444/wd/hub'; 
$web_driver = new PHPWebDriver_WebDriver($wd_host); 
$session = $web_driver->session('firefox'); 

我得到以下错误:

Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. 

我也有Xvfb来设置为显示:10。通过导出到此显示器,我可以在终端中打开Firefox。

我的问题是:

我怎么告诉的webdriver在默认情况下没有从终端会话手动启动它使用一个特定的显示?

回答

0

我认为只要确保Grid服务器在一个窗口环境中的shell中运行,就会一切正常。如果您在启动Firefox配置文件所需的窗口环境之外启动网格,它将不起作用。如果你正试图运行无头,没有DISPLAY,那么你应该使用GhostDriver/PhantomJS或类似的东西。

+0

Shoulnd't Xvfb能够处理显示? – user3063045

+0

是的,xvfb,vnc,lxde或其他什么,它应该工作。 – djangofan

+0

那么Selenium如何知道如果我的Firefox运行在VNC和XVFB中使用哪个显示器呢? – user3063045