java - 将 Chrome Selenium 驱动程序添加到 Ubuntu

标签 java maven google-chrome selenium jenkins

背景

我对作为 Maven 项目运行的 bitbucket 进行了一系列 selemium 测试。 Jenkins 在我的服务器上 headless 运行我的 Maven 项目。 Selenium 需要在服务器上安装额外的驱动程序才能运行 chrome 测试。

问题

我已将 chrome 驱动程序安装在服务器上 jenkins 文件夹的根目录下,因为 jenkins 用户是运行测试的用户并且只能访问这些文件夹。当我运行测试时,出现以下错误

java.lang.IllegalStateException: 
The driver executable does not exist: 
/var/lib/jenkins/jobs/ChromeLogin01/workspace/~/chromedriver

路径的 ~/chromedriver 部分位于我的 selenium 脚本中。我没想到路径会包含之前的所有内容,并认为 ~ 会将我带到 Jenkins 用户的根目录。

我尝试过的

所以我认为 ~/chromedriver 会正确重定向,但事实并非如此。我还执行了 && ~/chromedriver 因为这应该将 PATH 重置为 root。经过一些变化后,似乎无法使用常规 cd 语句来完成。

问题

如何让我的测试找到我在服务器上安装的 chrome 驱动程序,而不必在每个测试中安装该驱动程序?

最佳答案

您可以将脚本中的 ~ 替换为 System.getProperty("user.home"), 这会将您带到 Jenkins 用户的根目录。 就像这样 System.getProperty("user.home") + "/chromedriver"

关于java - 将 Chrome Selenium 驱动程序添加到 Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32116311/

相关文章:

java - Google Vision API JSON 响应仅提供英文版本

JavaFX 8 : Populating a TableView in initialize method

maven - Sonar 跳过除根模块之外的所有模块

javascript - Chrome 没有运行 javascript 垃圾收集器

javascript - 使用 Chrome 应用程序阅读连续剧

java - ListView 未对齐

java - 如何让 Google 路线保持在指定路线上到达某个地方?

java - maven-failsafe-plugin 是否应该在指定的 POM 的后代中执行?

Maven 源代码插件 - 更改 JAR 文件名

CSS 转换的内联 SVG 不触发 Chrome 中的事件处理程序