2017-04-09 91 views
0

我有下面的代码很简单:无浏览器启动 - 硒的webdriver - java.lang.NoClassDefFoundError:COM /谷歌/ GSON/JsonElement

System.setProperty("webdriver.chrome.driver", ECC.CHROME_DRIVER_PATH); 
     WebDriver x = new ChromeDriver(); 
     x.get("www.google.com"); 

此抛出:

java.lang.NoClassDefFoundError: com/google/gson/JsonElement 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:139) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:178) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:167) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124) 
    at com.axletrees.tests.draft.In_Dev_Tests_Jorge.verifyLoginAD(In_Dev_Tests_Jorge.java:24) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:661) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109) 
    at org.testng.TestRunner.privateRun(TestRunner.java:744) 
    at org.testng.TestRunner.run(TestRunner.java:602) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:380) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:289) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1226) 
    at org.testng.TestNG.runSuites(TestNG.java:1144) 
    at org.testng.TestNG.run(TestNG.java:1115) 
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76) 
Caused by: java.lang.ClassNotFoundException: com.google.gson.JsonElement 
    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) 
    ... 35 more 

任何想法?

+0

1)什么是您的代码中的ECC和2)您的网址应以https:// www.google.com – kushal

+0

开头请参阅http://grokbase.com/t/gg/webdriver/155js34ng7/exception-in- thread-main-java-lang-noclassdeffounderror-com-google-gson-jsonelement –

+0

下次请将代码格式化为代码。 –

回答

0

我可以通过eclipse marketplace更新TestNG来解决这个问题。我有在pom.xml文件中指定的最新版本,并且我没有在eclipse中手动更新TestNG。

如果有人面临同样的问题,当去市场看到安装的应用程序,有时它不会提供更新应用程序的可能性,它只是说“安装”;要查看是否有更新,请点击“已安装”按钮,然后您会看到该选项。

再次感谢您的帮助。

0

这里是解决你的问题:

  1. 您需要提供如下的cromedriver的完整路径:

System.setProperty("webdriver.chrome.driver", ECC.CHROME_DRIVER_PATH+"cromedriver.exe");

  • 您需要提供协议来调用网页: WebDriver x = new ChromeDriver(); x.get("http:\\google.com");
  • 让我知道这是否对你有帮助。

    +0

    嗨,谢谢你的回答。 ECC.CHROME_DRIVER_PATH已经指定了.exe也包含在内。问题是我使用的是旧版本的硒驱动程序。无论如何,再次感谢 – Jorge

    相关问题