我试图使用Selenium和Phpunit在Centos服务器上设置功能测试。
当我运行测试时,我在命令行中得到一个错误:
PHPUnit_Extensions_Selenium2TestCase_WebDriverException:
Unable to connect to host vmdev-pando-56 on port 7055 after 45000 ms.
Firefox console output: Error: no display specified我已经做了三天多的研究,却找不到解决办法。我读了很多帖子,包括SOverflow。根据我的理解,一切都是正确的,然而我正经历着和许多其他人一样的问题,而对他们有效的解决方案似乎并不适用于我。
这是我的设计:
Centos 6.5 x86 (没有GUI)5.63.7,尽管我也尝试过使用5.32.53,从这里下载,尽管我也尝试过使用2.9xorg-x11-server-Xvfb38.0.1,尽管我也尝试过使用38.7我还在bash配置文件中将DISPLAY设置为:99:

我就是这样建立环境的:
/usr/bin/Xvfb :99 -ac -screen 0 1280x1024x24 &/usr/bin/java -jar /usr/lib/selenium/selenium-server-standalone-2.53.0.jar &firefox & (虽然我知道这不是必要的,但以防万一)这三个进程都在后台运行。
此时,我知道Firefox和X缓冲区都是有效的。我可以运行命令firefox http://www.stackoverflow.com &,然后通过执行import -window root /tmp/buffer_snapshot.png获取缓冲区的快照,这恰好是如下所示:

当然,我在终端上收到了一个警告:Xlib: extension "RANDR" missing on display ":99",但是我无数次地读到这不是一个问题。
总之,问题刚刚开始。
我编写了一个相当简单的功能测试(请注意,除了functional之外,我编写的其他测试都运行得很好,因此这方面的环境似乎配置得很好):
<?php
namespace My\APP\BUNDLE\Tests\Functional\MyTest;
use PHPUnit_Extensions_Selenium2TestCase;
class HelloWorldTest extends PHPUnit_Extensions_Selenium2TestCase {
protected function setUp() {
$this->setBrowser('firefox');
$this->setHost('localhost');
$this->setPort(4444);
$this->setBrowserUrl('http://www.stackoverflow.com');
}
public function testTitle() {
$this->url('/');
$this->assertEquals("1", "1");
}
}当我通过发出phpunit HelloWorldTest.php运行测试时,我得到以下错误:
PHPUnit_Extensions_Selenium2TestCase_WebDriverException:
Unable to connect to host vmdev-pando-56 on port 7055
after 45000 ms. Firefox console output:
Error: no display specified通过检查selenium生成的日志文件,我发现了以下(有趣的)行:
21:55:46.135 INFO - Creating a new session for Capabilities [{browserName=firefox}]
[...]
java.util.concurrent.ExecutionException:
org.openqa.selenium.WebDriverException:
java.lang.reflect.InvocationTargetException
Build info: version: '2.53.0',
revision: '35ae25b',
time: '2016-03-15 17:00:58'
System info: host: 'vmdev-pando-56',
ip: '127.0.0.1',
os.name: 'Linux',
os.arch: 'i386',
os.version: '2.6.32-431.el6.i686',
java.version: '1.7.0_99'
Driver info: driver.version: unknown
[...](该文件包含完整的堆栈跟踪转储,以及未指定显示的原始消息)
Xvfb日志文件中没有错误。
在这一点上,我不知道我做错了什么。
有人能帮忙吗?
非常感谢
发布于 2016-04-06 01:40:11
无法连接错误的一个原因是Selenium Server的版本不知道如何使用您安装的Firefox版本。Selenium独立的web服务器2.53是最新的,也是最好的。selenium-firefox-驱动程序也是2.53。火狐版本38已经过时了。我使用selenium 2.53运行firefox 45.0.1。
https://stackoverflow.com/questions/36437162
复制相似问题