10

我的问题是如何从 SeleniumServer 浏览器实例中获取隔离的视频流。让我解释。

我在 Ubuntu 服务器机器上运行 Selenium 服务器集线器,在同一台服务器上运行 Selenium 服务器节点,所以我使用 xvfb 的“无头”Selenium 模式。我像这样运行节点:DISPLAY=:99 java -jar selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register

然后我想获得在那里运行的测试的视频流,所以我安装了连接到 xvfb 虚拟显示器的 x11server,之后我可以使用 VNC 连接那些远程服务器,我看到我的测试正在处理。问题是节点内的所有浏览器实例都呈现在同一个虚拟显示器上(#99),当我需要同时运行多个测试时,我看到许多浏览器实例一个接一个地覆盖。但我想记录错误测试视频流,所以我不能这样做。所以我需要有机会连接到每个浏览器的虚拟显示器。

我想我可以通过以某种方式调整 xvfb 服务器以强制它为每个客户端(在我的情况下为浏览器实例)创建隔离的虚拟显示器或屏幕(xvfb 支持多屏幕,不是吗?)来解决这个问题。但我试图这样做,但我没有得到结果。如果有必要解决这个问题,我也可以使用另一个虚拟显示器(不是 xvfb)。

请帮我从每个浏览器实例中获取隔离的视频流 :) 非常感谢,对我的英语感到抱歉。

4

2 回答 2

1

使用 selenium hub,您可以将浏览器分别添加到它们自己的 Xvfb 会话中

java -jar selenium-server-standalone-2.33.0.jar -role hub& 

然后在各自的 Xvfb 会话、DISPLAY 和端口中分别连接每个浏览器

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"&
于 2014-02-18T04:30:59.073 回答
1

对于这种用途,您通常可以使用xvfb-run命令(可以自动选择显示,但可以配置)

然后,您可以创建一个 firefox 启动脚本,该脚本xvfb-run firefox可以用作 selenium firefox start 命令(指定为 a FirefoxBinary

于 2014-02-19T09:06:05.740 回答