2017-12-08 15 views
0

私は、テスト自動化を行うために、セレンスタンドアロンサーバーを使用する1つの機能を持つgrails/groovyプロジェクトを持っています。Selenium Standalone Serverを使用したClassNotFoundException

私はgrailsプロジェクトを本番モードで稼働させています。 IntelliJから直接実行すると完全に動作するので、正確に何が間違っているのか分かりません。

WebDriver driver 
DesiredCapabilities capability = DesiredCapabilities.chrome() 
capability.setBrowserName("chrome") 
capability.setPlatform(Platform.WINDOWS) 
driver = new RemoteWebDriver(new URL("http://192.168.83.124:4444/wd/hub"), capability); 

私は最後の行にClassNotFoundExceptionがエラーを取得しています:

は、ここで関連するコードです。

私のプロジェクトのライブラリでは、私はselenium-java-2.53.0.jar、selenium-server-standalone-2.53.0.jarを使用しています。ソースには、selenium-java-2.53.0-srcs.jar

私は何が間違っているのか全く分かりません。解決策を見つけるためにインターネットを徹底的に検索しましたが、何も見つかりませんでした。どんな助けもありがとうございます。ここで

は、エラーの全文です:

2017-12-08 15:59:56,381 [http-bio-8080-exec-1] ERROR 
errors.GrailsExceptionResolver - ClassNotFoundException occurred when processing request: [GET] /Diversotron-0.1/api/edit 
com.google.common.base.Function. Stacktrace follows: 
java.lang.ClassNotFoundException: com.google.common.base.Function 
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
    at java.lang.Class.getDeclaredConstructors(Class.java:1906) 
    at 
org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46) 
    at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33) 
    at diversotron.PropotronService.setPropotron(PropotronService.groovy:25) 
    at diversotron.ApiController.edit(ApiController.groovy:53) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 
+0

質問に実際の例外を追加できますか? –

+0

Tim、私は上記の完全なエラーを追加しました。ご協力いただきありがとうございます。 – Sulteric

答えて

0

これは、SeleniumがBuildConfig.groovyファイルで宣言されていないためです。だからこそIntelliJ経由で稼動したが、実稼働環境では稼働しなかった。 grails prod warにはライブラリは含まれません。それらはbuildconfoig.groovyファイルで指定する必要があります。

これらの行を追加する必要がありました。

def seleniumVersion = "2.53.0" 

と依存関係に私はこれを追加する必要がありました:

runtime "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumVersion" 

うまくいけば、これはラインの下の他の誰かを助けます!

-1

地図クロームオプション=新しいMap();

ChromeOptions.put( "binary"、 "/ use/lib/chromium-browser/chromium-browser");

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

capabilities.setCapability(ChromeOptions.CAPABILITY、chromeOptions);

Webドライバのドライバ=新しいChromeドライバ(機能); これを試してください

関連する問題