Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Jenkins作业中使用Selenium WebDriver?_Selenium_Jenkins_Selenium Chromedriver - Fatal编程技术网

如何在Jenkins作业中使用Selenium WebDriver?

如何在Jenkins作业中使用Selenium WebDriver?,selenium,jenkins,selenium-chromedriver,Selenium,Jenkins,Selenium Chromedriver,我编写了一些JUnit测试,使用Selenium和Chrome 76.0.3809.68版的WebDriver。当我使用mvn clean install执行maven模块时,一切正常,但是当我尝试在Jenkins作业中运行它时,我得到以下错误: The driver is not executable: /jenkins/workspace/webUI.ITests/target/test-classes/calculator/chromedriverunix 现在,我已经尝试对chrome

我编写了一些JUnit测试,使用Selenium和Chrome 76.0.3809.68版的WebDriver。当我使用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();
        }

这两个文件肯定都存在于构建中。提前谢谢你

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

谢谢,我将在几个小时后尝试此解决方案,并会告诉您它是否有效。好的,我尝试了您的解决方案,但问题是,当这个作业被执行时,它做的第一件事就是获取git存储库的头部并创建所有文件。因此,每次我执行作业时,该文件都不同于我在其上执行chmod 777的文件。我如何才能克服这个问题?@hristianiev:请确保Git存储库中ChromeDriver.exe的文件权限具有执行权限。您可能需要从Git中删除该文件,然后在其上运行
chmod
后再次添加它。