jar criado por Gradle não consigo encontrar Webdriver

Keker:

Eu quero construir um jar executável que usa selênio. Eu estou tentando fazer isso usando shadowJar com as dependências de selênio e selênio motorista cromo. 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'
}

Mas quando tento executar o jar resultando eu recebo o seguinte erro

Exception in thread "main" java.lang.IllegalStateException: O caminho para o executável do condutor deve ser definido pela propriedade do sistema webdriver.chrome.driver;

Por que isso acontece apesar da dependência chromewebdriver indicada?

a Principal:

public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.google.com/");
        System.out.println(driver.getTitle());
    }
AndiCover:

O meio de mensagem de erro que você precisa para definir a localização do seu executável chromedriver como propriedade do sistema. Você pode fazer isso manualmente ou automatizado com a biblioteca io.github.bonigarcia.webdrivermanager que já está em suas dependências.


WebDriverManager

Adicione o seguinte linha ao seu método principal antes de criar uma instância do ChromeDriver.

WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();

Isso funciona semelhante para outros motoristas também.

Manual

O método manual seria semelhante a seguir:

System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=335037&siteId=1
Recomendado
Clasificación