Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
Maven 使用gradle下载回购协议时如何设置路径_Maven_Gradle_Selenium Chromedriver - Fatal编程技术网

Maven 使用gradle下载回购协议时如何设置路径

Maven 使用gradle下载回购协议时如何设置路径,maven,gradle,selenium-chromedriver,Maven,Gradle,Selenium Chromedriver,我正在使用gradle从maven下载selenium chrome驱动程序 webtestsCompile'org.seleniumhq.selenium:selenium-chrome驱动程序:2.32.0' 我试图直接使用它,我发现我得到了这个错误: Caused by: java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.d

我正在使用gradle从maven下载selenium chrome驱动程序

webtestsCompile'org.seleniumhq.selenium:selenium-chrome驱动程序:2.32.0'

我试图直接使用它,我发现我得到了这个错误:

  Caused by:
    java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list
我从stack overflow和其他地方查找了几个问题,它要求我将属性webdriver.chrome.driver的值设置为我下载的位置,如下所示:

System.setProperty("webdriver.chrome.driver", "path to chrome-driver");
我想知道最好的办法是什么

编辑1:

我验证了java.class.path该路径的一个片段如下所示:

/home/bhavya/.gradle/caches/artifacts-26/filestore/org.seleniumhq.selenium/selenium-chrome-driver/2.32.0/jar/14a4e8e32a4129c682c67381f5d7bf11f2327e1/selenium-chrome-driver-2.32.0.jar
这看起来像是java.class.path中存在selenium chrome驱动程序

编辑2:

我希望chrome驱动程序能够正常工作,而不管我使用的是什么操作系统,目前我在ubuntu设备上,但很多都会在windows设备上进行测试。当我将webdriver.chrome.driver的值硬编码为编辑1中的值时,我面临以下问题:

 java.lang.IllegalStateException: The driver is not executable: /home/bhavya/.gradle/caches/artifacts-26/filestore/org.seleniumhq.selenium/selenium-chrome-driver/2.32.0/jar/14a4e8e32a4129c682c67381f5d7bf11f2327e1/selenium-chrome-driver-2.32.0.jar
编辑3:

在其中运行测试套件的任务--


}

假设您需要为测试设置此系统属性,您可以执行以下操作:

test.doFirst {
    systemProperty "webdriver.chrome.driver", 
        classpath.find { 
            it.name.contains("selenium-chrome-driver")
        }.path
}

假设需要为测试设置此系统属性,可以执行以下操作:

test.doFirst {
    systemProperty "webdriver.chrome.driver", 
        classpath.find { 
            it.name.contains("selenium-chrome-driver")
        }.path
}

再次检查驱动程序是否在类路径上。在这种情况下,您不必设置系统属性。@PeterNiederwieser使用此信息更新了问题,并再次检查驱动程序是否在类路径上。在这种情况下,您不必设置系统属性。@PeterNiederwieser使用此信息更新了问题,因此我完全是从一个任务运行此操作的,我在任务中定义了一个doFirst,名称it.name.contains中的it实际上指向任务名,并在null对象上弹出一个“无法获取属性‘path’”错误您应该搜索为
Test
任务配置的同一类路径(例如
sourceset.webtests.runtimeClasspath.find{…}
)。您可能还想添加一个断言以确保找到Jar(
def chromeJar=…;assert chromeJar!=null
)。这解决了设置路径的问题,但看起来这并不是故事的结尾。添加路径的工作到此结束,但线程“main”中出现了一个异常java.lang.IllegalStateException:驱动程序不可执行:/Users/kirk/.gradle/caches/modules-2/files-2.1/org.seleniumhq.selenium/selenium-chrome-driver/3.5.3/1E15641377EF55237525BE0BAC313FF430D86/selenium-chrome-driver-3.5.3.jar所以我完全是通过一个任务来运行这个程序的,我已经在任务中定义了一个doFirst,名称it.name.contains中的it实际上指向任务名,并抛出一个“无法获取null对象上的属性‘path’”错误您应该搜索为
测试
任务配置的同一类路径(例如
sourceset.webtests.runtimeClasspath.find{…}
). 您可能还想添加一个断言以确保找到Jar(
def chromeJar=…;assert chromeJar!=null
)。这解决了设置路径的问题,但看起来这并不是故事的结尾。添加路径的工作到此结束,但线程“main”中出现了一个异常java.lang.IllegalStateException:驱动程序不可执行:/Users/kirk/.gradle/caches/modules-2/files-2.1/org.seleniumhq.selenium/selenium-chrome-driver/3.5.3/1E15641377EF55237525BE0BAC313FF430D86/selenium-chrome-driver-3.5.3.jar