我正在尝试使用页面工厂和页面对象模型运行Java项目,我想在Chrome,IE和Firefox上运行它,但是我无法在Firefox上运行它,浏览器没有打开,我得到了这个错误:java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal

我的代码是:

@BeforeMethod
public static void openBrowser() {
    String browser = "";
    if (browser.equalsIgnoreCase("chrome")){
        System.setProperty("webdriver.chrome.driver", "src\\test\\Resources\\BrowserDrivers\\chromedriver.exe");
        driver = new ChromeDriver();
    }
    else if (browser.equalsIgnoreCase("ie")){
        System.setProperty("webdriver.ie.driver", "src\\test\\Resources\\BrowserDrivers\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
    }
    else {
        driver = new FirefoxDriver();
    }
    driver = new FirefoxDriver();
    driver.get("http://www.google.com/");
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
    driver.manage().window().maximize();
}

@AfterMethod
public  static void closeBrowser(){
    driver.quit();
}

最佳答案

参见例如在Github issue中,某些依赖项可能会拖入过时的xml-apis版本,这可能会导致这种情况,一种对我有用的解决方案是在xml-apis上添加特定的依赖项,例如与Maven类似

<dependency>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
    <version>1.4.01</version>
</dependency>

10-07 22:12