0

对于我的 Selenium/Java 项目 [没有 Maven],使用 webdrivermanager-1.7.2.jar 自动为 chromedriver 下载二进制文件,但我收到“java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory”消息。我的代码:

package selenium_webdriver_api;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

import io.github.bonigarcia.wdm.ChromeDriverManager;

public class Topic_29_ManageBrowserVersion {

    private WebDriver driver;

    @BeforeClass
    public static void setupClass() {
        ChromeDriverManager.getInstance().version("2.33").setup();
        // Or: ChromeDriverManager.getInstance().setup();
    }

    @Before
    public void setupTest() {
        driver = new ChromeDriver();
    }

    @After
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    public void test() {
        driver.get("https://github.com/bonigarcia/webdrivermanager");
        driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
        driver.manage().window().maximize();
    }
}
4

1 回答 1

3

WebDriverManager 依赖于多个库,例如slf4j-apicommons-iogson等(完整列表请参见其pom.xml)。如果您在没有构建工具(例如 Maven、Gradle)帮助的情况下使用 WebDriverManager,则需要手动解决这些依赖关系。另一种选择是从源代码生成一个胖 jar,例如使用maven-assembly-plugin(info here ) 或maven-shade-plugin(info here )。

于 2017-12-04T08:25:46.577 回答