web-dev-qa-db-ja.com

ChromeDriver.exeを使用せずにMavenでSelenium-chrome-driverを操作する方法

次の依存関係とChromeを開くためのコードを追加しますが、ブラウザーが開きません。

<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-chrome-driver</artifactId>
<version>2.50.0</version>
</dependency>

私のコード:-

package example;
import org.openqa.Selenium.WebDriver;`
import org.openqa.Selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class DepChrome {

    @Test
    public void testBrowser() {
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    }
}
6
Gobi

以下の依存関係を以下のように追加します。

        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.0.0</version>
<!--            <scope>test</scope> -->
        </dependency>

ソース:以下のURLから新しい依存関係バージョンをコピーします。

https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager

以下のコードを使用してください:

WebDriver driver = null;
WebDriverManager.chromedriver().version("77.0.3865.40").setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized"); 
options.addArguments("enable-automation"); 
options.addArguments("--no-sandbox"); 
options.addArguments("--disable-infobars");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-browser-side-navigation"); 
options.addArguments("--disable-gpu"); 
driver = new ChromeDriver(options); 
driver.get("https://www.google.com/"); 

基本的に、特定のバージョンをダウンロードするためのコードの下のコード行の下にトリックがありました

WebDriverManager.chromedriver().version("77.0.3865.40").setup();

以下のURLから取得できる必須バージョン:

https://chromedriver.storage.googleapis.com/index.html

上記のchromedriver URLに存在する最新の依存関係を探している場合は、上記の代わりに以下のコードを使用することもできます

WebDriverManager.chromedriver().setup();

OR(古い方法)

以下のようにchrome binaryのパスを指定する必要があります。

System.setProperty("webdriver.chrome.driver", "C:\\pathto\\my\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");

以下のようにSeleniumサイトからchromeのバイナリをダウンロードします:- http://chromedriver.storage.googleapis.com/index.html?path=2.21/

次に、Seleniumへのバイナリのパスを次のように指定します。

System.setProperty("webdriver.chrome.driver", "C:\\pathto\\my\\chromedriver.exe");

もう一つ注意があります。 Windowsを使用している場合はバックスラッシュ\\を使用し、macまたはlinuxを使用している場合はパスの設定にスラッシュ//を使用します。

それがあなたを助けることを願っています:)

8
Shubham Jain

2つの方法があります。

  1. 最も簡単な方法は、この場所からchromedriverをダウンロードすることです

    chrome Webドライバーのダウンロード

    次に、プロジェクトにソースフォルダーを作成します。 (例:BrowserDrivers)、ダウンロードしたライブラリをこれに追加します。

    次に、setPropertyコマンドを次のように使用して、自動化スクリプトでchromeドライバーパスを設定します。

            System.setProperty("webdriver.chrome.driver", "BrowserDrivers/chromedriver.exe"); 
    
  2. しかし、別の方法があります。これは、Mavenビルドにより適しています。次の依存関係をPOM.xmlファイルに追加します。

    2つの依存関係があります。 Chromeドライバー用。ただし、chromeドライバーの依存関係を使用するには、webdrivermanagerの依存関係を追加する必要があります。これは、ブラウザードライバーの必須の依存関係です。そのため、常に両方を追加する必要があります。詳細については、このリンクを参照してください Github Webdriverマネージャーリンク

    <dependency>
         <groupId>io.github.bonigarcia</groupId>
         <artifactId>webdrivermanager</artifactId>
         <version>2.2.5</version>
    </dependency>
    

    chromeドライバーの依存関係も追加します。

    <dependency>
         <groupId>org.seleniumhq.Selenium</groupId>
         <artifactId>Selenium-chrome-driver</artifactId>
         <version>2.50.0</version>//Your chrome driver version
    </dependency>
    

    次に、自動化スクリプトでSystem.setPropertyコマンドの代わりにこの行を使用して、chromeドライバーを宣言します。

    ChromeDriverManager.getInstance().setup();
    

    UPDATE:ChromeDriverManagerの使用は非推奨 、代わりにこれを使用:

    import static io.github.bonigarcia.wdm.DriverManagerType.CHROME;
    import org.openqa.Selenium.WebDriver;
    import org.openqa.Selenium.chrome.ChromeDriver;
    import io.github.bonigarcia.wdm.WebDriverManager;
    
    WebDriverManager.getInstance(CHROME).setup();
    
13
Neyomal

以下のコードを確認してください-

package example;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import io.github.bonigarcia.wdm.WebDriverManager;
public class DepChrome  {
    @Test
    public void testBrowser() {
        WebDriver driver;
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();        
        driver.get("https://google.com");
        String title = driver.getTitle();
        System.out.println(title);      
        driver.quit();      
    }
}
3
Suresh Bhandari

次の2つのMaven依存関係により、システムプロパティを設定する必要はまったくありません。これは動作するはずです。

<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>${webdriver-manager.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.seleniumhq.Selenium/selenium-chrome-driver -->
        <dependency>
            <groupId>org.seleniumhq.Selenium</groupId>
            <artifactId>Selenium-chrome-driver</artifactId>
            <version>${Selenium-chrome-driver}</version>
        </dependency>
WebDriver driver;

@BeforeSuite
public void setUp(){
    WebDriverManager.chromedriver().setup();
    driver = new ChromeDriver();
    driver.get("http://www.ebay.in");
    driver.manage().timeouts().implicitlyWait(5000, TimeUnit.MILLISECONDS);
    }
1
Jemal Miftah

Mavenで、ChromeDriver.exeを使用して:

import static io.github.bonigarcia.wdm.DriverManagerType.CHROME;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;

import io.github.bonigarcia.wdm.WebDriverManager;

import org.testng.annotations.Test;

public class MavenTest {

    @Test
    public void TestMaven()
    {
    System.setProperty("webdriver.chrome.driver", "D:\\Sumit_Backup\\Automation\\Workspace\\Maven\\src\\Browser\\chromedriver.exe");
    WebDriver driver= new ChromeDriver();
    driver.get("http://testng.org/doc/maven.html");
    driver.manage().window().maximize();
}
}
0
deepak chamoli