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
EC2上的XVFB和Selenium-无法在VNC查看器上查看Chrome UI_Selenium_Ubuntu_Jenkins_Amazon Ec2_Xvfb - Fatal编程技术网

EC2上的XVFB和Selenium-无法在VNC查看器上查看Chrome UI

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

我的Selenium headless测试由Jenkins服务器触发,并在EC2 Ubuntu中运行。我想在Chrome上实时查看测试,所以我在Jenkins上安装了Xvfb插件

在EC2上,我安装了Xvfb。当我开始执行构建时,我的测试开始执行,我看到以下日志:

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会话中打开?比如双击快捷方式,看看它是否有效