JavaでWebブラウザを自動操作できるライブラリSelenium WebDriverは、ログインフォームの自動入力やテスト自動化に便利です。本記事では、JavaとSeleniumを使って、Chromeブラウザ上でログインフォームに自動入力する方法を、実践例付きでわかりやすく解説します。
この記事でわかること
- Java + SeleniumでChromeを操作する手順
- ログインフォームへの値入力&ボタンクリック方法
- よくあるトラブルと対処法
事前準備
1. JavaとIDE(Eclipse/IntelliJなど)のインストール
Java 8以上が推奨です。
2. Mavenプロジェクトを作成
Seleniumを依存に追加するためにMavenを使います。
3. ChromeDriverのダウンロード
公式サイト:https://chromedriver.chromium.org/
バージョンはGoogle Chromeのバージョンと一致させてください。
MavenにSelenium依存を追加
pom.xml
に以下を追加します
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.20.0</version>
</dependency>
</dependencies>
【実践コード】ログインフォームを自動入力してログインボタンを押す
サンプルフォーム仕様(例)
- ユーザー名入力欄の
name属性
:username
- パスワード入力欄の
name属性
:password
- ログインボタンの
id属性
:loginButton
Javaコード全文
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class LoginAutomation {
public static void main(String[] args) {
// ChromeDriverのパスを指定(自分の環境に応じて変更)
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
// Chromeブラウザを起動
WebDriver driver = new ChromeDriver();
try {
// ログインページにアクセス
driver.get("https://example.com/login");
// ユーザー名とパスワードを入力
WebElement username = driver.findElement(By.name("username"));
WebElement password = driver.findElement(By.name("password"));
username.sendKeys("your_username");
password.sendKeys("your_password");
// ログインボタンをクリック
WebElement loginBtn = driver.findElement(By.id("loginButton"));
loginBtn.click();
// 成功後の処理(例:タイトル表示)
System.out.println("ログイン後タイトル: " + driver.getTitle());
} catch (Exception e) {
e.printStackTrace();
} finally {
// 数秒待ってからブラウザを閉じる
try { Thread.sleep(3000); } catch (InterruptedException ignored) {}
driver.quit();
}
}
}
Seleniumログイン処理の流れ
[Javaプログラム]
↓
[ChromeDriver起動]
↓
[ログインページへ遷移]
↓
[ユーザー名/パスワード自動入力]
↓
[ログインボタン押下]
↓
[ログイン後ページに遷移]
よくあるエラーと対策
症状 | 対策例 |
---|---|
IllegalStateException: chromedriver not found | System.setProperty で正しいパスを指定 |
ElementNotFoundException | セレクタの指定ミス or ページ読み込みが未完了 |
「一瞬でブラウザが閉じる」 | Thread.sleep() を追加して確認時間を確保 |
ポイントまとめ
ポイント | 内容 |
---|---|
ライブラリの選定 | Selenium + ChromeDriver |
セレクタの使い方 | By.name , By.id , By.xpath などを用途に応じて使う |
エラー対策 | 要素待機処理(例:WebDriverWait)で安定化可能 |
発展:入力自動化からさらに進む応用例
- ログイン後にスクレイピングしてデータ収集
- スクリーンショットを自動保存
- 定時実行(バッチ処理)による定期監視
あとがき
Seleniumは単なる自動テストツールにとどまらず、ログイン処理やデータ取得など幅広い自動化に活用できます。まずはシンプルなログインから始めて、自動化の世界に慣れていきましょう!