0

I have got the solutions which is using xvfb to specified a display to selenium, when I test my web program. Envviroments: CentOS6, Selenium2, robotframwork, Firefox. And My steps are:

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

And firefox can startup correctly. Now, I know what to do to startup firefox, but I dont know why. What's the relationship among selenium2, vncserver, xvfb, robotframework? For short, I want to know how selenium2 or robotframework use xserver from vncserver or xvfb. I did not find my answer in http://docs.seleniumhq.org/docs/ and https://github.com/rtomac/robotframework-selenium2library. Anyone knows that? Any references? thx

4

1 回答 1

2

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

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

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

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

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

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

希望这可以帮助您理解。

于 2013-09-18T12:50:40.773 回答