EC2上的XVFB和Selenium-无法在VNC查看器上查看Chrome UI
我的Selenium headless测试由Jenkins服务器触发,并在EC2 Ubuntu中运行。我想在Chrome上实时查看测试,所以我在Jenkins上安装了Xvfb插件 在EC2上,我安装了Xvfb。当我开始执行构建时,我的测试开始执行,我看到以下日志:EC2上的XVFB和Selenium-无法在VNC查看器上查看Chrome UI,selenium,ubuntu,jenkins,amazon-ec2,xvfb,Selenium,Ubuntu,Jenkins,Amazon Ec2,Xvfb,我的Selenium headless测试由Jenkins服务器触发,并在EC2 Ubuntu中运行。我想在Chrome上实时查看测试,所以我在Jenkins上安装了Xvfb插件 在EC2上,我安装了Xvfb。当我开始执行构建时,我的测试开始执行,我看到以下日志: Xvfb/usr/bin/Xvfb:1-fbdir/var/lib/jenkins/Xvfb27-…fbdir13700092919317283985 Parsing POMs Established TCP socket on 30
Xvfb/usr/bin/Xvfb:1-fbdir/var/lib/jenkins/Xvfb
27-…fbdir13700092919317283985
Parsing POMs
Established TCP socket on 30810
我看到测试正在成功运行
现在,我通过
ssh -L 5901:localhost:5901 qa_user@10.113.x.xxx
然后我执行:
qa_user@jenkins-it:~$ export DISPLAY=: 30810` (Port number from Jenkins logs above)
qa_user@jenkins-it:~$ vncserver "$DISPLAY" -geometry 1280x1024
New 'X' desktop is jenkins-it: 30810
Starting applications specified in /home/qa_user/.vnc/xstartup
Log file is /home/qa_user/.vnc/jenkins-it: 30810.log
qa_user@jenkins-it:~$ x11vnc --listen 0.0.0.0 -rfbport 5901 -display : 30810
这将启动XVFB,我看到:
现在,当我从Mac连接到VNCviewer的localhost:5901时,我被带到了Ubuntu桌面
但是我没有看到chrome打开,即使测试正在运行,我在Jenkins上看到了测试日志
我也可以通过VncViewer使用Chrome。
我错过了什么?
我尝试了许多Xvfb设置说明,从一个月以来一直在努力实现这一点。以下是我提出的几个问题:
到现在还有很长的路要走,Stackoverflow是我最后的选择。请帮忙。我自己找到了解决办法。对于有相同问题的任何人: 我做错的是我使用了
driver=newchromedriver(选项)代码>在我的代码中,而不是driver=新的RemoteWebDriver(新的URL(“http://my.aws.ip:4444/wd/hub",期权),代码>
进行此更改后,我将selenium-server-standalone.jar下载到EC2中
然后,在开始测试之前,我做了ssh-xqa_user@my.aws.ip到EC2并执行:
Xvfb :99 -ac -screen 0 1280x1024x24 &
export DISPLAY=:99
java -jar /home/qa_user/Selenium/selenium-server-standalone.jar
现在,执行测试,同时我打开了一个新的终端,并执行了以下操作:
ssh-L 5900:localhost:5900_user@my.aws.ip
设置好屏幕后,我做了:
x11vnc -xkb -noxrecord -noxfixes -noxdamage -display :99 -auth /var/run/lightdm/root/:0 -rfbport 5900
接下来,打开VNC查看器,连接到localhost:5900,您将看到Chrome执行
稍后,如果需要,您可以将所有这些移到Jenkins预构建执行shell:)
有关我最新答案的更多详情:
你说的是硒“无头”。你在用无头旗帜运行ChromeDriver吗?如果Chrome在无头模式下运行,您将永远看不到UI。是。我已将chrome选项设置为headless。如果我不这样做,我相信它会抛出“找不到Chome二进制文件”错误。或者至少在安装Xvfb之前。您是否建议删除无头标志并尝试使用xvfb?是的。你必须去掉无头旗帜。Chrome无头标志实际上使浏览器无法以图形方式生成。如果您有不同的错误,请在删除标志后编辑问题,或者最好问另一个问题,然后我们进行检查。如果删除选项,我会得到以下错误。addArguments(“--headless”);从我的代码。org.openqa.selenium.WebDriverException:未知错误:Chrome无法启动:异常退出(未知错误:devtoolsativeport文件不存在)(从Chrome位置/usr/bin/google Chrome启动的进程不再运行,因此ChromeDriver假设Chrome已崩溃。)构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:“2018-11-14T08:17:03”Chrome是否从您的VNC会话中打开?比如双击快捷方式,看看它是否有效