首页 > 解决方案 > 无法通过 Docker 中的 Jenkins 运行硒测试

问题描述

所以我有带有 Ubuntu 的虚拟机。主机在Win10上。在这个 VM 中,我安装了一个 docker,在那里我拉动了 jenkins 并为 jenkins 安装了 selenium 插件。我可以从 win10 到达 selenium 节点。但是当我尝试从我的 IDE 启动测试时:

val cap: DesiredCapabilities =  DesiredCapabilities.chrome()
cap.setBrowserName("chrome")
webDriver = new RemoteWebDriver(new URL("http://192.168.10.223:4445/wd/hub/"), cap)
go to "https://www.google.com"

我有这个错误,我不明白为什么......

Exception encountered when invoking run on a nested suite - Unable to create new service: ChromeDriverService
Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:08.936Z'
System info: host: '2d3135afb490', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-24-generic', java.version: '1.8.0_171'
Driver info: driver.version: unknown
Command duration or timeout: 101 milliseconds

难道我做错了什么 ?还是我缺少一些配置?

标签: seleniumubuntudockerjenkinsvirtual-machine

解决方案


Docker 容器没有桌面(如果我理解正确的话,你的 selenium 进程正在这样的容器中运行),因此它们不会运行 UI 测试。你的机会是:

  1. 使用 PhantomJS 驱动程序。这是一个不会呈现任何内容且不需要桌面的浏览器。免责声明:在 Headless(Desktopless) 会话中尝试过,但在 Docker 上没有尝试过
  2. 尝试破解您的 Docker 映像并创建一个X 桌面会话。

推荐阅读