Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不同的xvfb屏幕上运行selenium服务器会话?_Selenium_Selenium Webdriver_Selenium Rc_Selenium Grid - Fatal编程技术网

如何在不同的xvfb屏幕上运行selenium服务器会话?

如何在不同的xvfb屏幕上运行selenium服务器会话?,selenium,selenium-webdriver,selenium-rc,selenium-grid,Selenium,Selenium Webdriver,Selenium Rc,Selenium Grid,我的问题是如何从SeleniumServer浏览器实例获取独立的视频流。让我解释一下 我在Ubuntu服务器机器上运行Selenium服务器集线器,在同一台服务器上运行Selenium服务器节点,因此我使用xvfb使用“headless”Selenium模式。我运行如下节点:DISPLAY=:99 java-jar selenium-server-standalone.jar-role-node-hubhttp://localhost:4444/grid/register 然后,我想获得在那里运

我的问题是如何从SeleniumServer浏览器实例获取独立的视频流。让我解释一下

我在Ubuntu服务器机器上运行Selenium服务器集线器,在同一台服务器上运行Selenium服务器节点,因此我使用xvfb使用“headless”Selenium模式。我运行如下节点:DISPLAY=:99 java-jar selenium-server-standalone.jar-role-node-hubhttp://localhost:4444/grid/register

然后,我想获得在那里运行的测试的视频流,所以我安装了连接到xvfb虚拟显示器的x11server,然后我可以使用VNC连接那些远程服务器,我看到了我的测试正在处理。问题在于,节点内的所有浏览器实例都在同一个虚拟显示99上渲染,当我需要同时运行多个测试时,我会看到许多浏览器实例一个接一个地叠加在一起。但是我想录制错误测试视频流,所以我不能这么做。因此,我需要有机会连接到每个浏览器虚拟显示分开

我想我可以通过调整xvfb服务器来解决这个问题,强制它创建隔离的虚拟显示,或者xvfb屏幕支持多屏幕,不是吗?对于我的案例中的每个客户端浏览器实例。但我已经尝试过了,但没有结果。如果有必要解决这个问题,我还可以使用另一个虚拟显示器,而不是xvfb


请帮助我从每个浏览器实例中获取独立的视频流:非常感谢,我的英语很抱歉。

使用selenium hub,您可以在各自的Xvfb会话中分别添加浏览器

java -jar selenium-server-standalone-2.33.0.jar -role hub& 
然后在各自的Xvfb会话、显示器和端口中分别连接每个浏览器

export DISPLAY=:11
Xvfb :11 -screen 0 1024x768x16 &

java -jar selenium-server-standalone-2.33.0.jar \
   -role node \
   -port 4441
   -hub http://localhost:4444/grid/register \
   -browser "browserName=firefox,version=19,maxInstances=5"&

对于这种用途,通常可以使用xvfb run命令,该命令可以自动选择一个显示,但可以对其进行配置


然后,您可以创建一个firefox启动脚本来运行xvfb运行firefox,您可以将其用作指定为FirefoxBinary的selenium firefox启动命令。在你弄明白了之后,你介意在某个地方的博客上分享一个HOWTO吗?我想很多Selenium的人可能对如何做这类事情感兴趣。除非你通过端口号选项,否则这是行不通的。否则,两个或多个服务无法在同一端口4444上侦听。集线器在4444上,但我接受您关于默认端口上客户端的观点。可以使用节点的-port选项指定端口。我更新了这个例子