当我测试我的 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/