testing - selenium2和vncserver或xvfb有什么关系

标签 testing selenium jenkins robotframework xvfb

当我测试我的 web 程序时,我得到了使用 xvfb 指定 selenium 显示的解决方案。环境:CentOS6、Selenium2、robotframwork、Firefox。我的步骤是:

   startup vncserver specified displaynumber. vncserver :6
   set DISPLAY with same number. DISPLAY=:6
   test my project.
   kill vncserver. vncserver -kill :6

并且firefox可以正常启动。现在,我知道如何启动 firefox,但我不知道为什么。 selenium2、vncserver、xvfb、robotframework有什么关系?简而言之,我想知道 selenium2 或 robotframework 如何使用来自 vncserver 或 xvfb 的 xserver。我没有在 http://docs.seleniumhq.org/docs/ 中找到我的答案和 https://github.com/rtomac/robotframework-selenium2library .有人知道吗?有引用资料吗?谢谢

最佳答案

我不是专家,但我会尽力解释我的理解。

默认情况下,您的 Centos 没有配置显示。
这意味着您无法启动任何具有图形界面的应用程序。
所以你不启动 Firefox。

xvfb 和 vncserver 允许您设置这样的显示。 xvfb 将创建内存中显示。

然后,“set DISPLAY”将告诉您的操作系统使用哪个显示器。 如果你将它设置为你启动的 xvfb,那么你就可以在你的 centos 上启动图形应用程序,但它们不会显示在内存中。

然后,对于 Robot/Selenium 部分,他们并不知道所有这些。
您的 Robot Framework 测试将调用将启动 Firefox 的 Selenium 库,就像您从命令行启动它一样,因此它将在 xvfb 显示器上启动。

所以对于您的问题“selenium 如何知道变量 DISPLAY 已经设置?”:selenium 不需要知道。他将它发送到当前的 DISPLAY,它将是您配置的那个。

希望这能帮助你理解。

关于testing - selenium2和vncserver或xvfb有什么关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18863259/

相关文章:

Django测试执行顺序和表格

ruby-on-rails - rspec 测试抛出未初始化的常量 Rails (NameError)

javascript - 使用 Javascript 伪造浏览器位置

Jenkins Groovy 无法通过 https 端口使用 oauth token 克隆 gitlab 存储库

php - 如何在运行测试前启动 PHP 内置 Web 服务器并在测试运行后关闭它

android - 以编程方式将谷歌帐户添加到android

python - js后端无法点击下载链接

mysql - Laravel:无法使用 RefreshDatabase 特性通过浏览器测试

android - Jenkins + 曲棍球套件

javascript - jest process.cwd() 获取测试文件目录