Selenium Can';t通过Docker中的Jenkins运行硒测试

Selenium Can';t通过Docker中的Jenkins运行硒测试,selenium,ubuntu,docker,jenkins,virtual-machine,Selenium,Ubuntu,Docker,Jenkins,Virtual Machine,所以我有一个带有Ubuntu的虚拟机。主机在Win10上。在这个虚拟机中,我安装了一个docker,在那里我拉了jenkins并为jenkins安装了selenium插件。 我可以从win10访问selenium节点。但当我尝试从IDE启动测试时: val cap: DesiredCapabilities = DesiredCapabilities.chrome() cap.setBrowserName("chrome") webDriver = new RemoteWebDriver(new

所以我有一个带有Ubuntu的虚拟机。主机在Win10上。在这个虚拟机中,我安装了一个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驱动程序。这是一款不渲染任何内容且不需要桌面的浏览器。免责声明:在无头(无桌面)会话中尝试过,但在Docker上没有
  • 尝试破解你的Docker图像并创建一个

  • 如果我没有错的话,我不需要桌面来运行一些测试。jenkins中有一个xvfb插件可以运行无头测试。那么为什么我需要一个桌面呢?但这很可能在操作系统环境中对您有所帮助。在docker内部,您没有现成的xvfb的可能性。你试过这个吗?