web-dev-qa-db-ja.com

Mavenを使用してSelenium 3.4.0を使用してFireFoxDriverを起動する方法は?

MavenプロジェクトでSeleniumの最新バージョン3.4.0を使用しようとしています。以下の依存関係を使用して、すべてのSeleniumのjarファイルをインポートしました。

<dependency>
    <groupId>org.seleniumhq.Selenium</groupId>
    <artifactId>Selenium-Java</artifactId>
    <version>3.4.0</version>
</dependency>

問題は、メインメソッド内の以下のコードについて、Eclipseのプロジェクトの依存関係を解決できないことです。

public class FirefoxTest {

    public static void main(String[] args) {
        FirefoxOptions options = new FirefoxOptions();
        options.setBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //This is the location where you have installed Firefox on your machine

        FirefoxDriver driver = new FirefoxDriver(options);
        driver.get("http://www.google.com");
    }
}

私は何が欠けていますか? Eclipseは、FirefoxDriverタイプを依存関係に解決できません。助けてください。

5
Bharat Nanwani

Selenium 3.4.0およびMozilla Firefox 53.xを使用するには、 here から最新のgeckodriver v0.16.1をダウンロードする必要があります。マシンに保存し、コードでgeckodriverの絶対パスを提供します。

次のように、必要な依存関係でpom.xmlを更新したことを確認します。

<dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-Java</artifactId>
        <version>3.4.0</version>
</dependency> 

WebDriver実装を使用するのではなく、FirefoxDriverインターフェースを使用することをお勧めします。

コードは次のようになります。

    System.out.println("Welcome to Maven World");
    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    WebDriver driver = new FirefoxDriver();       
    driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
    driver.navigate().to("http://www.google.com");

次のコマンドを提供して、以前の依存関係をフラッシュし、新しい依存関係をインストールして、テストを実行します。

>mvn clean
>mvn install
>mvn test 
3
DebanjanB

Seleniumのバージョン3では、Firefoxドライバーのインスタンス化が変更されたと確信しています。このコードを使用してください:

System.setProperty("webdriver.firefox.driver","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
WebDriver driver = new FirefoxDriver();

これについてもお読みください こちら

動作テストコードもあります here

また、クラスの先頭に正しいインポート文が含まれていることを確認してください。

import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;
1
JDTLH9

私は同じ問題に直面し、長い間解決策を探していました。コードまたは依存関係を変更しても、コードはすでにビルドされており、間違ったSelenium jarが割り当てられているため、コードは引き続きSelenium jarを誤ったものから取得します。

次の手順を実行します:

  1. EclipseプロジェクトのMaven依存関係を右クリックし、[Maven依存関係の構成]をクリックし、リストからMaven依存関係をドロップダウンして、それが置かれている.m2フォルダーを特定します。
  2. .m2フォルダを特定したら、それを開き、リポジトリに移動し、orgフォルダに移動します。
  3. そのフォルダーで、すべてのSeleniumフォルダーを削除します。
  4. pom.xmlファイルに戻り、Selenium 3.4.0依存関係を貼り付け、3.5.3またはその他のものをすべて削除します(3.4.0依存関係だけで十分です)。もう一度、他のすべてのSelenium依存関係を削除します。
  5. 最後に、ファイルを保存してプロジェクトセクションからビルドすれば、準備完了です。
1
ANVESH POLURI

これをpom.xmlに追加してください

<!-- https://mvnrepository.com/artifact/org.seleniumhq.Selenium/selenium-firefox-driver -->
<dependency>
    <groupId>org.seleniumhq.Selenium</groupId>
    <artifactId>Selenium-firefox-driver</artifactId>
    <version>3.13.0</version>
</dependency>

iam get from here

0
user8305604

Selenium 3.4+に必要なgeckoドライバーのMaven座標が見つかりませんでした。おそらく誰かが公開リポジトリを作成しましたが、それでもドライバーをダウンロードしてプロジェクトに直接追加するのは簡単です。静的パスの問題(これらのドライバーをプロジェクトに保持し、後で問題が発生しないようにし、セットアップを複雑にすることなくプロジェクト全体を送信できるようにする)には、これらのドライバーをプロジェクトの下に配置するのが最適ですsrc/main/resourcesフォルダ。

次からドライバをダウンロードします。 https://github.com/mozilla/geckodriver/releases (ARM、Linux、Mac、およびWindowsドライバのダウンロード)

複数のOSで作業している場合、OSに基づいて使用するドライバーを切り替えることができます。 Javaでオペレーティングシステムをプログラムで決定する方法は?

package com.kenmcwilliams.demo;

import Java.io.IOException;
import Java.nio.file.FileSystems;
import Java.nio.file.Path;
import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.WebElement;
import org.openqa.Selenium.firefox.FirefoxDriver;
import org.openqa.Selenium.support.ui.ExpectedCondition;
import org.openqa.Selenium.support.ui.WebDriverWait;

/**
 *
 * @author ken
 */
public class App {

    public static void main(String[] args){
        //if you're going to use more than one OS, you should make this switchable based on OS.
        Path path = FileSystems.getDefault().getPath("src/main/resources/geckodriver");
        System.setProperty("webdriver.gecko.driver",path.toString());
        WebDriver driver = new FirefoxDriver();
        //from here down is just a working example...
        driver.get("http://www.google.com");
        WebElement element = driver.findElement(By.name("q"));
        element.sendKeys("Cheese!");
        element.submit();
        System.out.println("Page title is: " + driver.getTitle());
        (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver d) {
                return d.getTitle().toLowerCase().startsWith("cheese!");
            }
        });
        System.out.println("Page title is: " + driver.getTitle());
        driver.quit();
    }
}
0
Quaternion

Geckoドライバーのダウンロード: https://github.com/mozilla/geckodriver/releases

System.setProperty("webdriver.gecko.driver", "c:\\geckodriver.exe");
WebDriver driver = new MarionetteDriver();
driver.get("http://www.google.com");
0
Roberto

以下の依存関係を使用してSeleniumをダウンロードします。

<dependency>
        <groupId>org.seleniumhq.Selenium</groupId>
        <artifactId>Selenium-Java</artifactId>
        <version>3.4.0</version>
</dependency>

依存関係がダウンロードされたら。ビルドプロジェクトを実行します。

これで問題が解決します

0
jyothish kumar