当前位置: 首页 > 知识库问答 >
问题:

Selenium错误:未指定显示

裴俊智
2023-03-14

我已经安装了selenium-server-standalone-2.42.2。debian虚拟盒中的jar

安装了火狐29.0

并尝试使用phpUnit(目录中唯一的文件)运行以下脚本:

<?php
class TestLogin extends PHPUnit_Extensions_Selenium2TestCase{

    public function setUp()
    {
            $this->setHost('localhost');
            $this->setPort(4444);
            $this->setBrowser('firefox');
            $this->setBrowserUrl('http://debian-vm/phpUnitTutorial');
    }

    public function testHasLoginForm()
    {
            $this->url('index.php');

            $username = $this->byName('username');
            $password = $this->byName('password');

            $this->assertEquals('', $username->value());
            $this->assertEquals('', $password->value());
    }
}

我得到以下错误:

1) TestLogin::testHasLoginForm
PHPUnit_Extensions_Selenium2TestCase_WebDriverException: Unable to connect to host
127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: no display specified
Error: no display specified

这是什么意思?

我尝试了几条红线,显然我必须做以下几点:

1) 要在命令shell中键入此命令

export PATH=:0;

结果:我也犯了同样的错误。

2) 我已经安装了vnc4server,并将debian vm:1作为一个应用程序,然后设置export PATH=debian vm:1使用realvnc运行它,在查看器中(正常工作)我遇到了同样的问题。

共有3个答案

桑飞语
2023-03-14

如今,设置headless就像将选项传递给selenium浏览器驱动程序一样简单。在大多数环境中,这可以通过在运行测试之前设置env变量MOZ_HEADLESS来实现,即尝试:

export MOZ_HEADLESS=1

然后,重新运行您的测试,它应该无头运行。

如果你运气不好,而且它没有拾取环境变量,试着在驱动程序配置中启用无头支持。例如:使用phpunit-selenium lib,执行以下操作:

$this->setDesiredCapabilities(['moz:firefoxOptions'=> ['args' => ['-headless']]]);
$this->setDesiredCapabilities(['chromeOptions'=>['args'=>['headless']]]);

有关更多选项,请参见php webdriver wiki。

欧阳子石
2023-03-14

当然,脚本是一种方法,但是迭代所有可能的显示值不如使用正确的显示值好。而且至少在debian/ubuntu中不需要xvfb。只要正确,就可以使用当前的显示会话变量在本地或远程运行Selenium。请看我的帖子http://thinkinginsoftware.blogspot.com/2015/02/setting-display-variable-to-avoid-no.html但简而言之:

# Check current DISPLAY value
$ echo $DISPLAY
:0
# If xclock fails as below the variable is incorrect
$ xclock
No protocol specified
No protocol specified
Error: Can't open display: :0
# Find the correct value for the current user session
$ xauth list|grep `uname -n`
uselenium/unix:10  MIT-MAGIC-COOKIE-1  48531d0fefcd0a9bde13c4b2f5790a72
# Export with correct value
$ export DISPLAY=:10
# Now xclock runs
$ xclock
公羊绪
2023-03-14

您收到此错误,因为您尚未设置显示变量。以下是如何在无头机器上执行测试的指南。

您必须先安装Xvfb和浏览器:

apt-get install xvfb
apt-get install firefox-mozilla-build

然后启动Xvfb:

Xvfb &

设置显示并启动Selenium:

export DISPLAY=localhost:0.0
java -jar selenium-server-standalone-2.44.0.jar

然后你就可以运行你的测试了。

 类似资料:
  • OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK 2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或configure脚本),位于cvShowImage的/io/OpenCV/modules/highgui/src/window文件中。cpp,第545行回溯(最后一次调用):

  • 问题内容: 我想将文件从Ubuntu主机复制到Docker容器。 我使用14.04 LTS存储库中的Docker 1.6.2。 当我尝试复制时出现错误: 同样成功,我可以输入乱码而不是文件名和路径: 问题答案: 版本1.6.2不允许从主机复制到容器,您需要至少升级到1.8以获得该支持。

  • 大家好,我有一个问题,当我试图复制一个文件从主机到docker容器,我得到了这个错误。 这是我的命令docker cp /usr/zhy/init.sqldb001:/root 这似乎不起作用。这是我的docker参数。 客户端版本:1.6.2客户端API版本:1.18 Go版本(客户端):go1.3.3 Git提交(客户端):7c8fca2 OS/Arch(客户端):linux/amd64服务器

  • 问题内容: 我已从网站下载并以以下方式运行: 我选择所需的选项并为(libgdx 1.6.2)生成项目。当我单击生成按钮时,该工具不会引发任何错误。 运行时,我转到文件>打开…,然后选择生成的ipr文件。 当我尝试运行桌面启动器时,抛出下一个错误: 我尝试使用其他构建工具和Android API(当我按下生成按钮时,大多数都会向我发出警告)。我正在使用构建工具20.0.0和API 20,并且使用此

  • 我正在使用库。 正在调用,但没有显示错误。可能是什么问题?我怎么解决这个?

  • 我正在尽我最大的努力,但我无法找到我的解决方案。 sugarcrm。尝试安装时,日志文件出现以下错误。 2017年11月1日星期三07:06:13[651035][无-][致命]创建表时出错:aos\u products\u quotes:查询失败:创建表aos\u products\u quotes(id char(36)不为NULL,名称文本NULL,date\u entered dateti