【问题标题】:Adding Chrome Selenium Driver to Ubuntu将 Chrome Selenium 驱动程序添加到 Ubuntu
【发布时间】:2015-11-13 23:33:14
【问题描述】:

背景

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

问题

我已经在服务器上 jenkins 文件夹的根目录下安装了 chrome 驱动程序,因为 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 驱动程序,而无需在每次测试中都安装驱动程序?

【问题讨论】:

    标签: java maven google-chrome selenium jenkins


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果您使用的是 Selenium 独立版本,您可以这样做:

      java -jar selenium-server-standalone-2.44.0.jar -role hub -hubConfig hubConfig.json -Dwebdriver.chrome.driver=chromedriver.exe
      

      在上面的示例中,.jar 文件和 chromedriver.exe 在同一个文件夹中。

      您也可以尝试在测试内部设置 chromedriver 的位置,如下所示:

      System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
      WebDriver driver = new ChromeDriver();
      

      如果从您执行的测试文件到您的 chromedriver 的距离(文件夹距离)是恒定的,如下所示:

      chromedriver path = "/workspace/selenium/drivers/chromedriver" 
      tests path = "/workspace/tests/test X" (where X is 1, 2... n)
      

      那么chromedriver的路径就是:

      pathToChromeDriver = "{PathToTestX}/../../selenium/drivers/chromedriver"
      

      希望这会有所帮助。

      另外,您是否使用特定于您的操作系统的 chromedriver?

      【讨论】:

        猜你喜欢
        • 2021-05-07
        • 2016-06-21
        • 1970-01-01
        • 2016-12-16
        • 1970-01-01
        • 2014-09-20
        • 2017-03-10
        • 2022-01-28
        • 2013-01-01
        相关资源
        最近更新 更多