Java 无法解析类引用org/openqa/selenium/WebDriver
在目录Java 无法解析类引用org/openqa/selenium/WebDriver,java,eclipse,selenium,jar,Java,Eclipse,Selenium,Jar,在目录C:\jars>的jars文件夹中,我有一个Test文件夹。在Test文件夹中,我有OneReports.jar,testng.jar,TestngTestSuiteUsingXML.java和Test.XML 我从eclipse导出了OneReports.jar,它包含一些java项目 Test.xml我已经创建了testsuite,该文件是 在命令提示符下,我尝试运行: C:\Jars>javac-cp“C:\ProgramFiles\Java\selenium*.jar”;“OneR
C:\jars>
的jars文件夹中,我有一个Test文件夹。在Test文件夹中,我有OneReports.jar
,testng.jar
,TestngTestSuiteUsingXML.java
和Test.XML
我从eclipse导出了OneReports.jar
,它包含一些java项目
Test.xml
我已经创建了testsuite,该文件是
在命令提示符下,我尝试运行:
[[TestNGClassFinder]] Unable to read methods on class test.LoginOneReports - unable to resolve class reference org/openqa/selenium/WebDriver
Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.getMethods(Unknown Source)
at org.testng.internal.TestNGClassFinder.<init>(TestNGClassFinder.java:59)
at org.testng.TestRunner.initMethods(TestRunner.java:409)
at org.testng.TestRunner.init(TestRunner.java:235)
at org.testng.TestRunner.init(TestRunner.java:205)
at org.testng.TestRunner.<init>(TestRunner.java:153)
at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:522)
at org.testng.SuiteRunner.init(SuiteRunner.java:157)
at org.testng.SuiteRunner.<init>(SuiteRunner.java:111)
at org.testng.TestNG.createSuiteRunner(TestNG.java:1299)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1286)
at org.testng.TestNG.createSuiteRunners(TestNG.java:1289)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.run(TestNG.java:1057)
at test.TestngTestSuiteUsingXML.main(TestngTestSuiteUsingXML.java:20)
Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 18 more
C:\Jars>
[[TestNGClassFinder]]无法读取类test.LoginOneReports上的方法-无法解析类引用org/openqa/selenium/WebDriver
线程“main”java.lang.NoClassDefFoundError中出现异常:org/openqa/selenium/WebDriver
位于java.lang.Class.getDeclaredMethods0(本机方法)
位于java.lang.Class.privateGetDeclaredMethods(未知源)
位于java.lang.Class.privateGetPublicMethods(未知源)
位于java.lang.Class.getMethods(未知源)
位于org.testng.internal.TestNGClassFinder(TestNGClassFinder.java:59)
位于org.testng.TestRunner.initMethods(TestRunner.java:409)
位于org.testng.TestRunner.init(TestRunner.java:235)
位于org.testng.TestRunner.init(TestRunner.java:205)
位于org.testng.TestRunner(TestRunner.java:153)
位于org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:522)
位于org.testng.SuiteRunner.init(SuiteRunner.java:157)
位于org.testng.SuiteRunner(SuiteRunner.java:111)
位于org.testng.testng.createSuiteRunner(testng.java:1299)
位于org.testng.testng.createSuiteRunners(testng.java:1286)
位于org.testng.testng.createSuiteRunners(testng.java:1289)
位于org.testng.testng.runSuitesLocally(testng.java:1140)
位于org.testng.testng.run(testng.java:1057)
位于test.TestngTestSuiteUsingXML.main(TestngTestSuiteUsingXML.java:20)
原因:java.lang.ClassNotFoundException:org.openqa.selenium.WebDriver
位于java.net.URLClassLoader$1.run(未知源)
位于java.net.URLClassLoader$1.run(未知源)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
... 还有18个
C:\Jars>
谁能帮我解决这个问题。我没有用maven。使用Selenium webdriver、TestNG、Java编写代码。由于您的javac工作正常,因此类路径中的TestNG.jar是正确的。然后该程序依赖于其他库selenium等。使用单个JAR而不是通配符是正确的
java -cp "C:\Program Files\Java\selenium<version>.jar;OneReports.jar;testng.jar" test.TestngTestSuiteUsingXML
java-cp“C:\Program Files\java\selenium.jar;OneReports.jar;testng.jar”test.TestngTestSuiteUsingXML
这可能会产生更多classnotfound异常。只将这些添加到类路径中
注意,您也通过相对路径(OneReports.jar或testng.jar)引用了其他jar。这会变得相当混乱。考虑使用Ant/Maven/Gealle来完成这部分工作。它们将更可靠地形成类路径 您能否指定您在
C:\Program files\Java
下拥有的selenium*.jar
文件的确切名称?是的C:\Program files\Java\selenium。。在这个selenium文件夹中,我有我在eclipse中作为引用库添加的所有jar文件。我有commons-io-2.4、selenium-java-2.39.0、selenium-server-standalone-2.39.0、log4j-1.2.17、commons-io-2.4-sources、commons-io-2.4-tests、commons-io-2.4-test-sources、selenium-java-2.39.0-srcs-jar文件C:\Program files\java\selenium
???这是一个单独的文件夹吗?如果是,那么您应该将类路径更改为“C:\Program Files\Java\selenium\*.jar”
(在“selenium”
之后添加一个反斜杠)。是的,我添加了一个反斜杠并尝试了,但我仍然面临如何使用每个jar文件的确切名称的问题?对于Selenium,您只需要其中两个:Selenium-java-2.39.0
和Selenium-server-standalone-2.39.0
。