次のコードを実行すると:
public static void main(String[] args) {
try {
FirefoxDriver driver = new FirefoxDriver();
driver.get("http:www.yahoo.com");
} catch (NoClassDefFoundError ex) {
System.out.println("error: " + ex.getStackTrace());
}
}
私は次のエラーに直面しています:
エラー:[Ljava.lang.StackTraceElement; @ 80f4cb
スレッド「メイン」の例外Java.lang.NoClassDefFoundError:com/google/common/base/Function
誰かがこの解決策や理由を見つけるのを手伝ってくれますか?
私は同じ問題を抱えていましたが、最終的に Selenium-server-standalone-version.jar を追加するのを忘れていました。クライアントjar Selenium-Java-version.jar のみを追加しました。
お役に立てれば。
JREがクラスを見つけられない場合、NoClassDefFoundError
がスローされます。あなたの場合、クラスパスに追加していない可能性が最も高いクラスcom.google.common.base.Function
が見つかりません。
次のライブラリをダウンロードした後:
そして、それらを解凍し、テストクラスであるlib
というフォルダーにすべてのJARファイルを配置します。
import org.openqa.Selenium.firefox.FirefoxDriver;
public class Test {
public static void main(String[] args) {
try{
FirefoxDriver driver = new FirefoxDriver();
driver.get("http:www.yahoo.com");
} catch(Exception e){
e.printStackTrace();
}
}
}
問題なく走りました。
次のようにクラスをコンパイルして実行できます。
#LinuxおよびMacでコンパイルして実行します javac -cp。:lib/* Test.Java Java -cp。:lib/* Test #Windowsでコンパイルして実行します javac -cp。; lib/* Test.Java Java -cp。; lib/* Test
同じエラーが発生し、調査後、ライブラリSelenium-api 2.41.0にはguava 15.0が必要であることがわかりましたが、古いバージョンによって上書きされたため、pom.xmlに次の構成を追加してguava 15.0を直接依存関係として宣言しました:
<dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<type>jar</type>
<version>15.0</version>
</dependency>
"google-collections" ライブラリが classpath にありません。
多くの ライブラリをクラスパスに追加する方法 があるため、プログラムの実行方法に関する詳細を提供してください。
コマンドラインから、ライブラリをクラスパスに追加するには
Java -classpath path/lib.jar ...
Seleniumスタンドアロンおよびlibフォルダーのすべてのjarファイルを含めると、このエラーは解決されます
私にとっては、jar-Selenium-Java-2.45.0.jarを選択することに加えて、Seleniumルートフォルダーの下の「libs」フォルダー内のすべてのjarを選択する必要がありました。
同じ問題がありました。 Selenium-2.53.0/Selenium-Java-2.53.0-srcs.jarファイルをプロジェクトの参照ライブラリに追加するのを忘れていたことがわかりました。
同じエラーが発生しましたが、INTELIJを使用している場合は、Seleniumのライブラリを追加すると解決しました(まだ追加していない場合)
project> projectStructure> Module> +> Selenium jarを追加します(libフォルダーと外部フォルダーの両方)。
Eclipseのような他のIDEでも同様にする必要があります。
Googleコードをインポートしようとしているようです:
import com.google.common.base.Function;
そして、それはクラス関数ではありません。必要なすべてのライブラリがビルドパスにあること、およびパッケージを正しく入力したことを確認してください。
「Selenium-server-standalone-version.jar」をインストールしても同じ問題が発生し、失敗します。グアバとグアバ-gwt jarをインストールする必要があると思います( https://code.google.com/p/guava-libraries / )も同様です。これらすべてのjarを追加し、最終的にはPCで機能しました。この問題に出会う他の人たちに役立つことを願っています。
this is for chrome
System.setProperty("webdriver.chrome.driver","D:\\Testing_offical\\chromedriver.exe");
driver =new ChromeDriver();
this is for fire fox
System.setProperty("webdriver.gecko.driver",""D:\\Testing_offical\\geckodriver.exe"");
driver =new FirefoxDriver();
パターン:
System.setProperty("webdriver.gecko.driver","**Path of the gecko driver** ");
ここからgeckoをダウンロードしてください:- http://docs.seleniumhq.org/download/
IDEなどの外部の単純なクラスを試したいと思いました。 WebサイトからSelenium Zipをダウンロードし、次のようにクラスを実行します。
Java -cp Selenium-2.50.1/*:Selenium-2.50.1/libs/*:. my/package/MyClass <params>
最初にlib
の代わりにlibs
を使用したという問題がありました。 I なかった Seleniumスタンドアロンjarを追加する必要があります。これは、クラスパスのワイルドカードを理解するJava 8です。 Java 7もそうだと思います。
私は同じ問題を抱えていましたが、Selenium-server-standalone-version.jarを追加するのを忘れていたことがわかりました。クライアントjar、Selenium-Java-version.jarのみを追加しました。
「Selenium-Java-.Zip」ファイルを抽出したら、IDEからビルドパスを構成する必要があります。 「lib」フォルダーの下のすべてのjarファイルと、SeleniumスタンドアロンサーバーとSelenium Javaバージョンjarファイルの両方をインポートします。
例外Java.lang.NoClassDefFoundError: com/google/common/base/Function
をキャッチしたとき、プロジェクトライブラリのエラーが原因でした。
プロジェクト設定で確認してください。 Intellij IDEAの場合、ファイル-プロジェクト構造に移動し、モジュールタブを選択します。この例外を解決するために必要なことは、Seleniumライブラリを再度追加することだけでした。