2017-04-09 230 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

    相關問題