mcpField
S
selenium

selenium

github.com/partme-aiテスト・品質71887 回インストール4 週間前に更新
リポジトリ

selenium について

Selenium WebDriver によるブラウザー自動化テストの作成・保守を支援するスキルです。要素の検索、待機、ヘッドレス実行、複数ブラウザー、CI の手順を扱います。

主な機能

  1. 01WebDriver テストスクリプトの作成
  2. 02CSS・ID・相対ロケーター
  3. 03明示的待機の案内
  4. 04ヘッドレスと Grid での実行
  5. 05CI/CD テストワークフローの案内

活用シーン

  1. 01ブラウザーテストの自動化
  2. 02明示的待機によるテストの不安定さの軽減
  3. 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 パイプラインへの統合

このスキルの使い方

ワークフロー
  1. 環境をセットアップする:ブラウザードライバー(ChromeDriver/GeckoDriver)をインストールするか、Selenium 4 Manager を使用します
  2. テストスクリプトを作成する:ページに移動し、要素を特定して操作し、アサーションを行います
  3. 待機とエラー処理を追加する:sleep の代わりに明示的待機を使用します
  4. 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 を使用し、ブラウザーとドライバーのバージョンが一致していることを確認します

リソース

キーワード

selenium, WebDriver, ブラウザー自動化, E2E, エンドツーエンドテスト, ヘッドレス, Selenium Grid, ChromeDriver, 明示的待機, CSS セレクター

コメント