Seleniumとは
Seleniumは、ブラウザを自動操作するためのオープンソースフレームワークです。テスト自動化、ウェブスクレイピング、ブラウザ操作の自動化などに利用されます。
JavaScriptでのSelenium利用方法
環境設定
// 必要なパッケージをインストール
// npm install selenium-webdriver
// 基本的なセットアップ
const { Builder, By, Key, until } = require('selenium-webdriver');
async function example() {
// ブラウザを起動(ChromeDriverが必要)
const driver = await new Builder().forBrowser('chrome').build();
try {
// 処理を記述
} finally {
// ブラウザを閉じる
await driver.quit();
}
}
基本操作
ウェブページにアクセス
// ウェブサイトを開く
await driver.get('https://www.example.com');
要素の検索と操作
// 必要なパッケージをインストール
// npm install selenium-webdriver
// 基本的なセットアップ
const { Builder, By, Key, until } = require('selenium-webdriver');
async function example() {
// ブラウザを起動(ChromeDriverが必要)
const driver = await new Builder().forBrowser('chrome').build();
try {
// 処理を記述
} finally {
// ブラウザを閉じる
await driver.quit();
}
}
要素の操作
// クリック
await element.click();
// テキスト入力
await element.sendKeys('検索ワード');
// キー入力(Enterキーを押す)
await element.sendKeys(Key.RETURN);
// テキスト取得
const text = await element.getText();
// 属性値取得
const attributeValue = await element.getAttribute('href');
待機処理
// 明示的な待機(要素が見つかるまで最大10秒待機)
await driver.wait(until.elementLocated(By.id('result')), 10000);
// 要素が表示されるまで待機
await driver.wait(until.elementIsVisible(await driver.findElement(By.id('result'))), 10000);
// タイトルに特定の文字列が含まれるまで待機
await driver.wait(until.titleContains('結果ページ'), 10000);
JavaScript実行
// ブラウザ上でJavaScriptを実行
await driver.executeScript('return document.title;');
// スクロール処理
await driver.executeScript('window.scrollTo(0, document.body.scrollHeight);');
// 要素までスクロール
const element = await driver.findElement(By.id('target'));
await driver.executeScript('arguments[0].scrollIntoView(true);', element);