无法解析类引用org / openqa / selenium / WebDriver

时间:2014-02-27 09:54:18

标签: java eclipse selenium jar

在目录C:\jars>中,在Jars文件夹中,我有Test文件夹。在Test文件夹中,我有OneReports.jartestng.jarTestngTestSuiteUsingXML.javaTest.XML

我从eclipse导出OneReports.jar,它包含一些java项目。

Test.xml我创建了测试套件,该文件是

在命令提示符中我试图运行:

  1. C:\ Jars> javac -cp“C:\ Program Files \ Java \ selenium * .jar”;“OneReports.jar”;“testng .jar“test \ TestngTestSuiteUsingXML.java

  2. C:\ Jars> java -cp“C:\ Program Files \ Java \ selenium * .jar”;“OneReports.jar”;“testng。 jar“test.TestngTestSuiteUsingXML

  3. 我在这里得到如下错误:

    [[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>
    

    任何人都可以帮我解决问题。我不是在使用maven。使用Selenium webdriver,TestNG,Java编写代码。

1 个答案:

答案 0 :(得分:1)

由于您的javac工作正常,因此您可以在类路径中正确使用testng.jar。然后该程序依赖于其他库selenium等。使用单个罐而不是外卡是正确的。

java -cp "C:\Program Files\Java\selenium<version>.jar;OneReports.jar;testng.jar" test.TestngTestSuiteUsingXML

这可能会产生更多的classnotfound异常。只添加那些到你的类路径。

请注意,您也通过相对路径(OneReports.jar或testng.jar)引用其他jar。这可能会非常混乱。考虑使用ant / maven / gradle来完成这部分工作。它们将更可靠地形成类路径。