Testing 什么';s selenium2与vncserver或xvfb之间的关系

Testing 什么';s selenium2与vncserver或xvfb之间的关系,testing,selenium,jenkins,robotframework,xvfb,Testing,Selenium,Jenkins,Robotframework,Xvfb,当我测试我的web程序时,我已经得到了使用xvfb为selenium指定一个显示的解决方案。环境:CentOS6、Selenium2、机器人框架、Firefox。我的步骤是: startup vncserver specified displaynumber. vncserver :6 set DISPLAY with same number. DISPLAY=:6 test my project. kill vncserver. vncserver -kill :6

当我测试我的web程序时,我已经得到了使用xvfb为selenium指定一个显示的解决方案。环境:CentOS6、Selenium2、机器人框架、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。我没有在和中找到我的答案。有人知道吗?有推荐人吗?thx

我不是专家,但我会尽力解释我是如何理解它的

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

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

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

然后,对于机器人/硒元素部分,他们没有意识到所有这些。
您的Robot框架测试将调用Selenium库,该库将像您从命令行启动Firefox一样启动Firefox,因此它将在xvfb显示屏上启动

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


希望这能帮助您理解。

我正在做类似的事情,但我使用的是xvfb+机器人+硒。为了帮助你,我需要知道1)你到底想解决什么问题?(Centos是没有Xwindows的虚拟机吗?是否要无头运行测试?)2)您在解释中提到了xvfb,但在步骤中没有提到。它已经在您的Centos上运行了吗?我只是按照教程的步骤配置环境:
1st\u install\u vncserver
2nd\u start\u vncserver:6
3rd\u install\u python
4th\u install\u jdk
5th\u install\u Jenkins
6th\u start\u Jenkins
7th\u安装Xvfb mesa dri驱动程序dbus-x11
8th\u安装机器人框架plutin
。我对vncserver和xvfb感到困惑。selenium如何使用vncserver或xvfb启动firefox?一些教程只给出了解决方案的步骤,但没有告诉你为什么要这样做。设置环境变量
DISPLAY=:6
后,我的项目已正确运行。CentOS6中有一个Xwindow。遵循此操作后,我的项目运行良好。为什么这个解决方案能起作用?selenium如何知道vncserver已经启动,以及selenium如何知道变量
DISPLAY
已经设置?因此,如果我已经使用了vncserver,那么就不需要同时使用xvfb。因为他们做同样的事情,对吗?这是我的理解是的,我认为这也不是机器人/硒的工作,现在。