5

使用new FirefoxDriver()时我总是得到一个

NoSuchMethodError:org.apache.xpath.XPathContext

(在 org.apache.xpath 的 org.apache.xpath.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:115) 处的线程“主”java.lang.NoSuchMethodError 中的异常:org.apache.xpath.XPathContext.(Z)V .jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:99) at org.apache.xpath.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:184) at org.openqa.selenium.firefox.internal.FileExtension.readIdFromInstallRdf(FileExtension.java :120) 在 org.openqa 的 org.openqa.selenium.firefox.internal.ClasspathExtension.writeTo(ClasspathExtension.java:63) 的 org.openqa.selenium.firefox.internal.FileExtension.writeTo(FileExtension.java:60)。 selenium.firefox.FirefoxProfile.installExtensions(FirefoxProfile.java:464) 在 org.openqa.selenium.firefox.FirefoxProfile.layoutOnDisk(FirefoxProfile.java:442) 在 org.openqa.selenium.firefox.FirefoxProfile.layoutOnDisk(FirefoxProfile.java:442)openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:79) at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:250) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver .java:110) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:195) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) 在 org.openqa.selenium.firefox。 FirefoxDriver.(FirefoxDriver.java:107) 在 test.PerfTest.main(PerfTest.java:35) )FirefoxDriver.(FirefoxDriver.java:195) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:107) 在 test.PerfTest。主要(PerfTest.java:35))FirefoxDriver.(FirefoxDriver.java:195) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:190) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:107) 在 test.PerfTest。主要(PerfTest.java:35))

4

1 回答 1

3

这可能是xalan.jar造成这种情况的原因。检查您的类路径中是否有不同版本的 xalan,并尝试检查 webdriver 是否引用了正确的 jar。你可以试试

System.out.println(new XPathContext().getClass().getProtectionDomain().getCodeSource().getLocation());

检查它正在使用哪个 jar。

于 2013-12-06T13:08:16.567 回答