selenium について
Selenium WebDriver によるブラウザー自動化テストの作成・保守を支援するスキルです。要素の検索、待機、ヘッドレス実行、複数ブラウザー、CI の手順を扱います。
主な機能
- 01WebDriver テストスクリプトの作成
- 02CSS・ID・相対ロケーター
- 03明示的待機の案内
- 04ヘッドレスと Grid での実行
- 05CI/CD テストワークフローの案内
活用シーン
- 01ブラウザーテストの自動化
- 02明示的待機によるテストの不安定さの軽減
- 03CI または Selenium Grid でのテスト実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ partme-ai/ full-stack-skills --skill seleniumインストール後、Claude Code で/seleniumを入力して読み込まれたか確認します。
同梱ファイルLICENSE.txt
詳細
このスキルを使用するタイミング
ユーザーが以下を希望する場合は、このスキルを使用します。
- Selenium WebDriver を使用したブラウザー自動化テストの作成または保守
- CSS セレクター、ID、相対ロケーターを使用した要素の特定
- 安定したテスト実行のための明示的待機と暗黙的待機の実装
- ヘッドレスモードでのテスト実行、または Selenium Grid を介した複数ブラウザーでの実行
- Selenium テストの CI/CD パイプラインへの統合
このスキルの使い方
ワークフロー
- 環境をセットアップする:ブラウザードライバー(ChromeDriver/GeckoDriver)をインストールするか、Selenium 4 Manager を使用します
- テストスクリプトを作成する:ページに移動し、要素を特定して操作し、アサーションを行います
- 待機とエラー処理を追加する:
sleepの代わりに明示的待機を使用します - CI で実行する:ヘッドレスモードまたは Grid を設定し、レポートを生成します
1. 基本的なテスト(Python)
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://example.com/login")
# Explicit wait for element
wait = WebDriverWait(driver, 10)
username = wait.until(EC.presence_of_element_located((By.ID, "username")))
username.send_keys("testuser")
driver.find_element(By.ID, "password").send_keys("secret")
driver.find_element(By.CSS_SELECTOR, "button[type='submit']").click()
# Assert login success
assert "Dashboard" in driver.title
driver.quit()
2. 基本的なテスト(Java)
WebDriver driver = new ChromeDriver();
driver.get("https://example.com/login");
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
WebElement username = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("username")));
username.sendKeys("testuser");
driver.findElement(By.id("password")).sendKeys("secret");
driver.findElement(By.cssSelector("button[type='submit']")).click();
assertTrue(driver.getTitle().contains("Dashboard"));
driver.quit();
3. ヘッドレスモード
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
options.add_argument("--no-sandbox")
driver = webdriver.Chrome(options=options)
ベストプラクティス
- 信頼性の高いテストのために、
time.sleepの代わりに明示的待機(WebDriverWait)を使用します - 脆弱な XPath 式よりも、ID、CSS セレクター、または相対ロケーターを優先します
- テストケースを独立かつ再現可能に保ち、失敗時にはスクリーンショットを取得します
- 機密データ(URL、認証情報)は設定ファイルまたは環境変数に保存します
- 並列実行には Selenium Grid を使用し、ブラウザーとドライバーのバージョンが一致していることを確認します
リソース
- 公式ドキュメント:https://www.selenium.dev/documentation/
- Selenium Grid:https://www.selenium.dev/documentation/grid/
キーワード
selenium, WebDriver, ブラウザー自動化, E2E, エンドツーエンドテスト, ヘッドレス, Selenium Grid, ChromeDriver, 明示的待機, CSS セレクター
コメント
Markdown 対応