2017-11-03 14 views
-2

私はここからJDKをインストール:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html (Windowsのx64のためのこのバージョン:Java SEの開発キット8u151)セレンwebdriverを+ Javaは - Eclipseの:java.lang.NoClassDefFoundErrorの

私はここからEclipseをダウンロード: http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/oxygenr ( Windowsの64ビット版)

私は、Eclipseで新しいプロジェクト開く:その後、私は、ここからセレンJavaのjarファイルをダウンロードしたファイル - >新規作成> Javaプロジェクト

を: http://www.seleniumhq.org/download/ ---> Java言語

私は自分のプロジェクト - >プロパティ - > Javaビルドパス - >ライブラリタブ - >外部JARを追加...をクリックしてEclipseで - >私は "SeleniumDrivers \ Java"ライブラリ(そこにすべてのJARS私は)ダウンロードしたこと - >私はそこにすべてのファイルをチェックする: these files

私は「OK」をクリックし、日食

で新しいクラスを作成した後、私はここからchromedriverをダウンロード:http://www.seleniumhq.org/download

私は解凍しましたそれをここに保存しました:C:\ Selenium \ Drivers

これは私のスクリプトです:

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class MainClass { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     System.out.println("hi there\n"); 

     System.setProperty("webdriver.chrome.driver", 
     "C:/Selenium/Drivers/chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
     driver.get("https://www.facebook.com"); 
    } 

} 

あなたが見ることができるように、これはChromeブラウザを開き、ログインfacebookに移動し、非常に基本的なスクリプトです。

私はこのスクリプトを実行すると、このエラーを得た:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/config/RegistryBuilder 
    at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:69) 
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:57) 
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:60) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:242) 
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.<init>(ApacheHttpClient.java:219) 
    at org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:93) 
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:72) 
    at org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(DriverCommandExecutor.java:63) 
    at org.openqa.selenium.chrome.ChromeDriverCommandExecutor.<init>(ChromeDriverCommandExecutor.java:36) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168) 
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123) 
    at MainClass.main(MainClass.java:11) 
Caused by: java.lang.ClassNotFoundException: org.apache.http.config.RegistryBuilder 
    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) 
    ... 13 more 

私はあなたが私が私の基本的なスクリプトを実行することができるようになりますように、それを解決するために助けてくださいすることができ、この問題を解決する方法がわかりませんか?

+1

Gradleのようなビルドシステムを使用したことはありますか?これにより、依存関係を手動で管理する必要がなくなります。 あなたが取得したjarファイルのように見えます。具体的には、プロジェクトに追加したjarファイルには、RegistryBuilderクラスがあるライブラリは含まれていません。そのクラスはApache HttpCore jarファイルにあります。あなたがそれを含めていることを確認するために周りを見回し、必要に応じてダウンロードして結果に影響を与えるかどうかを確認してください。 –

+0

こんにちは、ありがとう、私はそれが私が推測する問題ではないので、それを含めた –

+0

ダウンロードしたwebdriver jarバンドルの一部として提供されましたか?あるいは、それを別のエンティティとしてダウンロードしましたか?別にダウンロードした場合は、使用しているウェブドライバのバージョンと互換性のあるバージョンであることを確認してください。どのようなjarがそのクラス定義を持つことが期待されていても問題はありませんし、修正は非常に可能性があります。 –

答えて

1

最新の(v3.7)のように見えます。Selenium-Java zipファイルには、libフォルダに含まれるjarファイルが少なくなっています。 v3.6には10個のlib jarが含まれていますが、v3.7には7個のjarファイルしか含まれていません。

opのすべての問題を引き起こしている欠けている瓶は 'httpcore-4.4.6.jar'です。私は瓶の除去が意図的であるかどうかは分かりません。たぶんchromedriverはそれを見てSelenium java 3.7に追いついています。

私の平均使用時間は​​です。/libフォルダも追加することを忘れないでください。

http://selenium-release.storage.googleapis.com/3.6/selenium-java-3.6.0.zip

+0

公開されている問題https://github.com/SeleniumHQ/selenium/問題/ 5012 – Sighil

+0

@John Pj Issueが修正されました。今すぐ3.7.1を使用できます。 github.com/SeleniumHQ/selenium/issues/5012 – Sighil

1

java.lang.NoClassDefFoundErrorJREClassを見つけることができないときに観察されます。

簡潔に言えば、必要なファイルはimportsまたはjarです。スナップショットから、関連するjarsをJava Clientに追加しようとしたことが分かりました。あなたは、次の手順を実行する必要があり、この場合には

  1. Selenium standalone server & Selenium Java client
  2. インポートのみselenium-server-standalone-3.7.0の以前のバージョンを参照するすべてのjarファイルを削除します。あなたのIDEProject内のメニューで
  3. 、オプションBuild Automaticallyを選択して、すべてのプロジェクトのためのCleanオプションを実行します。
  4. テストを実行します。
関連する問題