我想建立一个使用硒的可执行jar。我正在尝试使用shadowJar与硒和硒 Chrome 驱动程序的依赖关系来执行此操作。
build.gradle:
group 'selenium.test'
version '1.0'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
}
}
apply plugin: 'java'
apply plugin: 'com.github.johnrengelman.shadow'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
jar{
manifest{
attributes 'Main-Class': 'Test'
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
dependencies {
compile group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '3.6.2'
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: '3.141.59'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
但是当我尝试执行生成的jar时,出现以下错误
尽管指示了chromewebdriver依赖性,但为什么会发生这种情况?
主要:
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
System.out.println(driver.getTitle());
}
最佳答案
错误消息表示您需要将chromedriver可执行文件的位置设置为系统属性。您可以使用依赖项中已存在的库io.github.bonigarcia.webdrivermanager手动或自动执行此操作。
WebDriverManager
在创建ChromeDriver实例之前,将以下行添加到您的main方法中。
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
其他驱动程序也是如此。手册
手动方法如下所示:
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();