要素の Locators

Seleniumにおける「要素のLocators(ロケーター)」は、Webページ上のHTML要素を特定し操作するために使用される仕組みです。自動化スクリプトが正確に目的の要素を操作するためには、適切なロケーターの指定が不可欠です。


1. ロケーターの概要

ロケーターは、Webページ内の特定の要素を一意に識別するための手段です。Seleniumでは、以下の8種類のロケーターを利用できます。状況に応じて使い分けることで、柔軟かつ堅牢なスクリプトを作成できます。


2. 主なロケーターの種類

1. id

  • 要素の id 属性で検索します。

  • 特徴:一意であることが保証されていれば、最も高速で信頼性が高い方法です。

  • 使用例

    python
    driver.find_element(By.ID, "username")

2. name

  • 要素の name 属性で検索します。

  • 使用例

    python
    driver.find_element(By.NAME, "email")

3. class name

  • 要素の class 属性で検索します。

  • 注意点:クラス名が重複する可能性があるため、慎重に使用する必要があります。

  • 使用例

    python
    driver.find_element(By.CLASS_NAME, "form-control")

4. tag name

  • 要素のタグ名(例: input, a, div)で検索します。

  • 使用例

    python
    driver.find_element(By.TAG_NAME, "input")

5. link text

  • アンカータグ(<a>)の完全なリンクテキストで検索します。

  • 使用例

    python
    driver.find_element(By.LINK_TEXT, "ログイン")

6. partial link text

  • アンカータグの一部のリンクテキストで検索します。

  • 使用例

    python
    driver.find_element(By.PARTIAL_LINK_TEXT, "ログ")

7. css selector

  • CSSセレクタで要素を検索します。

  • 柔軟性が高く、複雑な条件にも対応可能です。

  • 使用例

    python
    driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")

8. xpath

  • XPath式で要素を検索します。

  • 最も柔軟性があり、構造や属性に応じた精密な指定が可能ですが、構文が複雑です。

  • 使用例

    python
    driver.find_element(By.XPATH, "//input[@name='password']")

3. ロケーター選定のポイント

条件 推奨ロケーター
一意のIDが存在する id
name属性が使える name
クラスが限定的に使われている class name
複雑な階層構造にアクセスする必要がある css selector または xpath
リンクテキストに基づく操作 link text, partial link text

4. 注意点

  • xpathcss selector は構文ミスをしやすいため、開発ツール(Chrome DevToolsなど)で事前に検証すると安全です。

  • DOM構造の変更に強いロケーターを選ぶことで、スクリプトの保守性が向上します。

ChatGPT4o 生成日:2025/06/21