0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

javaでseleniumを使用する方法

Last updated at Posted at 2022-11-27

はじめに

自動テストやスクレイピングに使いたくてseleniumを入門しました。

環境

Java:8
ブラウザ:Google Chrome 107.0.5304.110
selenium:4.6.0
webdrivermanager:5.3.1

環境設定

ライブラリを依存関係に追加する

build.gradleに必要なライブラリの依存関係を追加します。
seleniumライブラリである「selenium-java」に加えて、
ブラウザをコントロールする「webdrivermanager」を追加します。

build.gradle
dependencies {
    implementation 'org.seleniumhq.selenium:selenium-java:4.6.0'
    implementation 'io.github.bonigarcia:webdrivermanager:5.3.1'
    // ・・・
}

ブラウザーのドライバーをインストールする

こちらから使用したいブラウザのドライバーをダウンロードします。
今回はgoogle chromeを使用するため、「ChromeDriver 107.0.5304.62」のmac版をダウンロードします。
zip形式なので、解凍して適当な場所に配置します。

注意(ブラウザとドライバーのバージョンは合わせること)

ドライバーはバージョン別に用意されています。
使用するブラウザのバージョンを確認し、合ったドライバーを選んでください。

(最初、特に気にしていなくて実行時エラーが多発しました。。。)

サンプルを実装

Main.java
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.time.Duration;

public class Main {

    public static void main(String args[]) {
        
        // ドライバーをセットアップし、インスタンス化します。
        // 先ほどインストールしたドライバーのパスをここで指定します。
        WebDriverManager.chromedriver().setup();
        System.setProperty("webdriver.chrome.driver","/opt/chromedriver");
        WebDriver driver = new ChromeDriver();

        // googleの検索ページに遷移します。
        driver.get("https://www.google.com/?hl=ja");

        // ブラウザ操作の待ち時間を指定します。
        // seleniumは人が操作するより、ずっと速くブラウザを操作します。
        // 応答に時間がかかるページでは適宜、待ち時間を指定します。
        driver.manage().timeouts().implicitlyWait(Duration.ofMillis(500));

        // クラス属性で検索し、テキストボックスの要素を取得します。
        WebElement textBox = driver.findElement(By.className("gLFyf"));

        // テキストボックスに「Selenium」と入力し、検索を実行します。
        textBox.sendKeys("Selenium");
        textBox.sendKeys(Keys.ENTER);

        // セッションを終了します。
        // ※コメントアウトしていますが、外すと最後にブラウザを閉じるようになります。
        // driver.quit();
    }
}

実装出来たら、サンプルを実行してみます。
chromeが起動し、検索が実行されれば成功です。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?