Java - Selenium Firefoxdriver 在使用 .jar 文件时不启动

Java - Selenium Firefoxdriver does not start when using .jar file

当我创建一个 .jar 文件并想要启动 firefox webdriver 时,我得到一个错误。如果我在 VS-Code.

中 运行 它会起作用
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" org.openqa.selenium.WebDriverException: Build info: version: '4.1.0', revision: '87802e897b'
System info: host: 'DESKTOP', ip: 'IP', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.1'
Driver info: driver.version: FirefoxDriver
        at java.base/java.util.Optional.orElseThrow(Optional.java:403)
        at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:230)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
        at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:164)
        at hegahelperjava.Test.main(Test.java:13)

我已经将 SLF4j 添加到我的 Maven 依赖项中,就像他们在这里所说的那样:java - SLF4J

这里是重现问题的片段:

//selenium
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
//webdrivermanager
import io.github.bonigarcia.wdm.WebDriverManager;

public class Test {
    public static void main(String[] args) {
        String driversPath = "PATHTODRIVER";
        WebDriverManager.firefoxdriver().cachePath(driversPath).avoidOutputTree().setup();
        FirefoxOptions options = new FirefoxOptions();
        WebDriver driver = new FirefoxDriver(options);
    }
}

做一个结论。 如果某些东西不起作用,请尝试更新您的 dependencies 修复大多数问题

在这种情况下,selenium 4.1.0 不允许在将应用程序打包到 jar 中时执行 firefoxdriver。它适用于 selenium 4.1.4.