TransWikia.com

Java selenium ChromeDriver метод setExperimentalOption не работает

Stack Overflow на русском Asked by JavaDev on December 2, 2021

Java selenium ChromeDriver метод setExperimentalOption не работает

Вознаграждение 10$, тому кто первый и точно подскажет в чем проблема

Есть простой код, посмотреть/скачать можно на Git https://github.com/a040985/chromeDriverError
Когда его запускаю в idea всё работает норм.
Но когда запускаю скомпилированный .jar файл через .bat файл, выдает ошибку "NoSuchMethodError:"

Ошибка указывает на метод «options.setExperimentalOption("prefs", prefs);», но почему программа не видит этот метод непонятно.
Если убрать этот метод, то всё работает норм, но убрать я его не могу т.к. мне нужно указать путь для сохранения файла.

package by.bestproger.project.downloadprice.runner;

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.HashMap;
import java.util.Map;

public class RunApp {
    final public static String pathDefault = "D:\java\myProject\downloadprice\";
    final public static String downloadPathDefault = pathDefault + "externalFiles\downloadFiles\";
    final public static String pathGoogleDriver = pathDefault + "externalFiles\exe\chromedriver.exe";

    public static ChromeDriver driver;

    public static void main(String[] args) {
        chromeDriver();
        driver.quit();
    }

    public static void chromeDriver() {
        System.setProperty("webdriver.chrome.driver", pathGoogleDriver);
        Map<String, Object> prefs = new HashMap<>();
        prefs.put("download.default_directory", downloadPathDefault);
        ChromeOptions options = new ChromeOptions();

        //если этот метод закомментить, то всё работает норм,
        // но этот метод нужен для установки пити загрузки файла
        options.setExperimentalOption("prefs", prefs);

        driver = new ChromeDriver(options);
        driver.get("https://www.google.com/");
        driver.get("https://www.tut.by/");

    }
}

One Answer

РЕШЕНИЕ

  1. Меняем pom.xml файл (содержимое ниже)
  2. Через консоль "CMD" переходим в папку где лежит файл pom.xml
  3. Выполняем команду "mvn package"
  4. Эта команда формирует файл в директории проекта "target" с именем "downloadprice-1.0-SNAPSHOT-jar-with-dependencies.jar"
  5. Просто двойным кликом запускаем файл.
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

<groupId>by.bestproger.project</groupId>
<artifactId>downloadprice</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <groupId>org.apache.maven.plugins</groupId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <id>make-executable-jar-with-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>by.bestproger.project.downloadprice.runner.RunApp</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<dependencies>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>

    <dependency>
        <groupId>net.lingala.zip4j</groupId>
        <artifactId>zip4j</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.6.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.6.1</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>

    <dependency>
        <groupId>com.github.junrar</groupId>
        <artifactId>junrar</artifactId>
        <version>4.0.0</version>
    </dependency>

</dependencies>

Answered by JavaDev on December 2, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP