在测试我的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,但我不知道为什么。selenium2、vncserver、xvfb、robotframework之间有什么关系?简而言之,我想知道selenium2或robotframework如何使用来自vncserver或xvfb的xserver。我在http://docs.seleniumhq.org/docs/和https://github.com/rtomac/robotframework-selenium2library中没有找到我的答案。有人知道吗?有推荐信吗?thx
发布于 2013-09-18 12:50:40
我不是专家,但我会尽力解释我是如何理解它的。
默认情况下,Centos没有配置任何显示。
这意味着您不能启动任何具有图形界面的应用程序。
所以你没有启动火狐。
xvfb和vncserver允许您设置这样的显示。xvfb将创建内存中的显示。
然后,“设置显示”将告诉您的操作系统使用哪种显示器。如果您将其设置为您启动的xvfb,那么您可以在您的centos上启动图形应用程序,但是它们不会在内存中显示。
然后,对于机器人/硒部分,他们并没有意识到这一点。
您的机器人框架测试将调用Selenium库,该库将启动Firefox,就像从命令行启动Firefox一样,因此它将在xvfb显示上启动。
因此,对于您的问题“selenium是如何知道变量显示已经设置的?”:selenium不需要知道。他将其发送到当前显示,它将是您配置的。
希望这能帮你理解。
https://stackoverflow.com/questions/18863259
复制相似问题