2016-04-13 21 views
4

Sadece başsız test için Selenium WebDriver (a.k.a. Selenium 2) otomatik testi için basit bir maven projesi oluşturuyordum.NoClassDefFoundError nasıl düzeltilir: CircularOutputStream hatası?

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

Ama hata oluyor:

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 

Sadece pom.xml gelen PhantomJS bağımlılığını ortadan kaldırarak sorunu çözer ve pom.xml'Bu diğer bağımlılıklar ile aşağıdaki şekilde ben PhantomJS sürücü bağımlılık eklendi iyi çalışır. Birisi sorunu bulmama yardımcı olabilir mi?

Şimdiden teşekkürler.

cevap

4

En sonunda çözümü aldım.

Ekleme PhantomJS v.1.2.0, selenium-remote-driver-2.53.0.jar dosyasını selenium-remote-driver-2.41.0.jar ile değiştirir ve bu nedenle her şeyi bozar.

driver = new PhantomJSDriver(caps); 

Ve şimdi V.2.41.0 kullanarak,

driver = new FirefoxDriver(); 

yerine

hata üretir.

+2

Bu, sürüm uyumluluk sorunuydu. Selenyum-remote-driver-2.53.0 ile phantomjsdriver 1.3.0'ı kullanabilirsiniz –

0

@Ripon comment gereğince, sorun sürüm uyumluluğu içindir, bu nedenle Selenyum Server 2.53.x, Phantom JS 1.3.x ile birlikte kullanılmalıdır.

<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> 

Sonra kurmak ve bu proje için bağımlılık ağacını görüntülemek için mvn dependency:tree çalıştırın:

İşte çalışması gerekir pom.xml çizgiler olduğunu.

Maven kullanmıyorsanız, make sure you've all dependent jar files in your classpath'a ihtiyacınız vardır.

İlgili konular