2016-04-13 15 views
4

私はヘッドレステストのためのSelenium WebDriver(a.k.a. Selenium 2)自動化テスト用の簡単なmavenプロジェクトを作成していました。 pom.xmlに他の依存関係を次のように私はPhantomJSドライバーの依存関係を追加しました:NoClassDefFoundErrorを修正するには:CircularOutputStreamエラー?

<dependency> 
    <groupId>com.github.detro</groupId> 
    <artifactId>phantomjsdriver</artifactId> 
    <version>1.2.0</version> 
</dependency> 

しかし、それはエラーを取得している:ただのpom.xmlからPhantomJS依存性を取り除く

java.lang.NoClassDefFoundError: org/openqa/selenium/io/CircularOutputStream 
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:60) 
at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:56) 
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120) 
at jp.co.skygate.home.HomePageLogin.setUp(HomePageLogin.java:108) 
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 

は、問題を解決し、それは正常に実行されます。 誰かが問題を見つけるのを助けることができますか?

ありがとうございます。

答えて

4

最後に私は解決策を得ました。

PhantomJS v.1.2.0を追加すると、selenium-remote-driver-2.53.0.jarがselenium-remote-driver-2.41.0.jarに置き換えられ、すべてが破壊されます。 そして今V.2.41.0を使用して、

driver = new FirefoxDriver(); 

代わりの

driver = new PhantomJSDriver(caps); 

エラーを生成します。

+2

それで、バージョンの互換性の問題でした。 phantomjsdriver 1.3.0とselenium-remote-driver-2.53.0を使用することができます –

0

@Ripon commentによると、問題はバージョンの互換性にあります。そのため、Selenium Server 2.53.xをPhantom JS 1.3.xとともに使用する必要があります。

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>2.53.1</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>com.codeborne</groupId> 
    <artifactId>phantomjsdriver</artifactId> 
    <version>1.3.0</version> 
</dependency> 

このプロジェクトの依存関係ツリーを構築し、表示するmvn dependency:treeを実行後:ここで

は動作するはずpom.xmlで行があります。

Mavenを使用していない場合は、make sure you've all dependent jar files in your classpathが必要です。

関連する問題