【发布时间】:2023-03-24 03:13:01
【问题描述】:
我的 Selenium 无头测试从 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 30810
我看到测试运行成功。
现在我通过 SSH 从 Mac 终端到 EC2
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 桌面。
但即使测试正在运行并且我在 Jenkins 上看到测试日志,我也没有看到 chrome 打开。
我在这里缺少什么? 我尝试了许多 Xvfb 设置说明,并且从一个月以来一直在努力做到这一点。以下是我提出的几个问题:
How to view live headless Selenium tests on EC2-Ubuntu using vncserver and xvfb
到目前为止,Stackoverflow 是我最后的选择。请帮忙。
【问题讨论】:
-
您在谈论 Selenium“无头”。您是否使用无头标志运行 ChromeDriver?如果 Chrome 在无头模式下运行,您将永远看不到 UI。
-
是的。我已将 chrome 选项设置为无头。如果我不这样做,我相信它会抛出“找不到 Chome 二进制”错误。或者至少在安装 Xvfb 之前做到了。您是否建议删除无头标志并在 xvfb 中尝试?
-
是的。您必须删除无头标志。 Chrome 无头标志实际上使浏览器不会以图形方式生成。如果您有其他错误,请在删除标记后编辑问题,或者更好地提出另一个问题,我们会检查出来。
-
如果我删除 options.addArguments("--headless");从我的代码。 org.openqa.selenium.WebDriverException:未知错误:Chrome 启动失败:异常退出(未知错误:DevToolsActivePort 文件不存在)(从 chrome 位置 /usr/bin/google-chrome 启动的进程不再运行,所以ChromeDriver 假设 Chrome 已崩溃。)构建信息:版本:'3.141.59',修订:'e82be7d358',时间:'2018-11-14T08:17:03'
-
Chrome 是否从您拥有的 VNC 会话中打开?就像双击快捷方式,看看它是否有效
标签: selenium ubuntu jenkins amazon-ec2 xvfb