selenium2和vncserver或xvfb之间的关系是什么

时间:2013-09-18 03:15:01

标签: testing selenium jenkins robotframework xvfb

当我测试我的网络程序时,我得到了使用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找不到答案。谁知道呢?任何参考? THX

1 个答案:

答案 0 :(得分:2)

我不是专家,但我会尝试解释我是如何理解的。

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

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

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

然后,对于Robot / Selenium部分,他们并未意识到这一切 您的机器人框架测试将调用Selenium库,它将启动Firefox,就像您从命令行启动它一样,因此它将在xvfb显示器上启动。

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

希望这有助于您理解。