背景
我对作为 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/