selenium - 无法通过 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
难道我做错了什么 ?还是我缺少一些配置?
解决方案
Docker 容器没有桌面(如果我理解正确的话,你的 selenium 进程正在这样的容器中运行),因此它们不会运行 UI 测试。你的机会是:
- 使用 PhantomJS 驱动程序。这是一个不会呈现任何内容且不需要桌面的浏览器。免责声明:在 Headless(Desktopless) 会话中尝试过,但在 Docker 上没有尝试过
- 尝试破解您的 Docker 映像并创建一个X 桌面会话。
推荐阅读
- python - 总结python中的列表并制作一个新矩阵
- c# - 如何从使用 CryptoJS 加密的字符串中实现 AES 解密?
- laravel - Laravel 集合返回
- templates - xslt 基于默认结构和数据合并 XML
- firebase - 用于预订应用程序的 Firestore 数据建模,便于查询可用性
- python - Python无法识别列表对象
- c - 如何从数组中更改结构指针中的数组值?
- sql - 如何在不使用合并的情况下根据复合键删除重复项
- listview - Xamarin.Forms ListView 具有 2 个不同的选择选项
- javascript - 我如何 JSON.parse 来自 URL 的字符串(React Native)