【问题标题】:How to use Selenium WebDriver in a Jenkins job?如何在 Jenkins 工作中使用 Selenium WebDriver?
【发布时间】:2019-09-04 07:04:03
【问题描述】:

我编写了一些使用 Selenium 和 Chrome 版本 76.0.3809.68 的 WebDriver 的 JUnit 测试。当我使用 mvn clean install 执行 maven 模块时一切正常,但是当我尝试在 Jenkins 作业中运行它时,出现以下错误:

The driver is not executable: /jenkins/workspace/webUI.ITests/target/test-classes/calculator/chromedriverunix

现在我已经尝试对 chromedriver.exe 文件执行相同的操作,但我得到了同样的错误。这两个驱动程序都来自 selenium 网站,应该是正确的。这是我设置驱动程序的代码:

if (System.getenv("ON_JENKINS") == null) {
            URL res = this.getClass().getResource("chromedriverunix");
            File file = Paths.get(res.toURI()).toFile();
            return file.getAbsolutePath();
        } else {
            URL res = this.getClass().getResource("chromedriver.exe");
            File file = Paths.get(res.toURI()).toFile();
            return file.getAbsolutePath();
        }

这两个文件肯定都存在于构建中。先感谢您!

【问题讨论】:

    标签: selenium jenkins selenium-chromedriver


    【解决方案1】:

    这似乎与 Unix 上的权限有关。可以通过在chromedriver所在文件夹中执行chmod 777 chromedriverunixchmod +x chromedriverunix来更改。

    【讨论】:

    • 谢谢你,我会在几个小时内尝试这个解决方案,我会告诉你它是否有效。
    • 好的,所以我尝试了您的解决方案,但问题是当这个作业被执行时,它做的第一件事就是它获取一个 git 存储库的头部并创建所有文件。因此,每次我执行作业时,文件都与我执行 chmod 777 的文件不同。我怎样才能克服这个问题?
    • @HristianIliev:尝试确保您的 Git 存储库中 ChromeDriver.exe 的文件权限具有执行权限。您可能需要从 Git 中删除该文件,然后在对其运行 chmod 后再次添加它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 2013-08-19
    • 2013-03-08
    • 1970-01-01
    • 2021-04-21
    • 2013-07-26
    • 2021-10-25
    相关资源
    最近更新 更多