java.lang.NoClassDefFoundError : org/w3c/dom/ElementTraversal 错误

标签 java selenium webdriver

我正在尝试使用页面工厂和页面对象模型运行 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>

关于java.lang.NoClassDefFoundError : org/w3c/dom/ElementTraversal 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40912602/

相关文章:

java - 尽管有错误,你可以强制编译吗

java - 有界队列开销

python - 谷歌浏览器无法读取和写入其数据目录 : selenium

java - Selenium - 页面对象工厂 - 重新加载后引用同一页面上的元素

Java/Android - 设置 DecimalFormat 以仅显示尾数

angularjs - 在 Protractor 中创建和解决 promise

java - Selenium 网络驱动程序 2 不起作用

touch - 带有触摸事件的 WEbdriver

java - org.openqa.selenium.WebDriverException : unknown error: cannot determine loading status

java - 使用 .equals 比较数组