我想建立一个使用硒的可执行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();

09-27 03:22