2016-04-06 11 views
2

WebDriverBackedSeleniumを使用してiexploreでSelenium RC whith Selenium Webdriverのコードを実行しようとしています。noClassdefFoundError ExplodingSupplier

File file = new File("C:/Selenium/IEDriverServer.exe"); 
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); 
    WebDriver driver = new InternetExplorerDriver(); 
    selenium = new WebDriverBackedSelenium(driver, "https:// my web "); 

通常RC用SeleniumConfigのコードが

selenium = new DefaultSelenium("localhost", getPuerto(), 
        "*iexplore", "https:// my web"); 
    selenium.start(); 

であり、これは動作します:私が持っているSeleniumConfig.classで

java.lang.NoClassDefFoundError: org/openqa/selenium/ExplodingSupplier 
    at org.openqa.selenium.WebDriverCommandProcessor.<init>(WebDriverCommandProcessor.java:165) 
    at org.openqa.selenium.WebDriverBackedSelenium.<init>(WebDriverBackedSelenium.java:30) 
    at config.SeleniumConfig.start(SeleniumConfig.java:40) 
    at idenLocaJava.LocaJavaSuite.setUp(LocaJavaSuite.java:18) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at ..... 

とコンソールで:しかし、私はこのエラーを取得し、新しいコードに置き換え

Started InternetExplorerDriver server (32-bit) 
2.45.0.0 
Listening on port 12628 
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies). 
log4j:WARN Please initialize the log4j system properly. 

いくつかの提案は?私はPOM.XMLに依存する必要がありますか? 私が持っている:私は、Java 7と互換性のある最新バージョンを使用する必要がある

<dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.45.0</version> 
      </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-server</artifactId> 
      <version>2.45.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-htmlunit-driver</artifactId> 
      <version>2.45.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-remote-driver</artifactId> 
      <version>2.45.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-api</artifactId> 
      <version>2.45.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-exec</artifactId> 
      <version>1.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>16.0.1</version> 
     </dependency> 

も、私が試したセレン2.46.0です。

ありがとうございました。

答えて

0

を追加しました。あなたのプロジェクトで "mvn dependency:tree"を実行して、正しいバージョンが得られているかどうか確認してください。クリーニングと再構築を試みてください。

エラーメッセージ(WebDriverCommandProcessorおよびWebDriverBackedSelenium)のセレクションクラスは、古いセレンパッケージからのものです。あるべき2.45.0では:

com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium 
com.thoughtworks.selenium.webdriven.WebDriverCommandProcessor 
+0

ああ、私は** ** com.thoughtworks.selenium.webdriven.WebDriverBackedSeleniumによって** ** org.openqa.selenium.WebDriverBackedSeleniumを変更し、それが動作します!ありがとうムスタファ! – PedroTC

+0

素晴らしい!喜んで助けた。 – Mustafa

0

jarの異なるバージョン間のjarsまたは競合のために、この問題が一般的に予想されます。ここではMavenは必須の依存関係を提供するためにgoodを使用しているので、htmlunitのためのセレニウム - javaとセレン - サーバーとオフコースのみがあります。詳しい情報はhere

は、 ムラリ

0

感謝をありがとう提供され、私はあなたのプロジェクトはまだ古いセレンのjarファイルを参照しているように見えます

<dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-remote-driver</artifactId> 
     <version>2.45.0</version> 
    </dependency> 
    <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-api</artifactId> 
      <version>2.45.0</version> 
    </dependency> 

    because without this I had 
java.lang.NoClassDefFoundError: org/openqa/selenium/HasInputDevices 

and 

<dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>16.0.1</version> 
</dependency> 

becase whitout this i had 

java.lang.NoClassDefFoundError: com/google/common/net/MediaType 


I could delete 

<dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-exec</artifactId> 
     <version>1.3</version> 
    </dependency> 

But still the error