相対ロケーター(Relative Locators)

Selenium 4では、「相対ロケーター(Relative Locators)」と呼ばれる新しい機能が追加されました。これは、特定の要素の視覚的な位置関係に基づいて他の要素を見つける手法であり、従来のIDやXPathなどとは異なる柔軟な要素特定手段です。


相対ロケーターとは何か

相対ロケーターは、指定した要素の上下左右や近くにある要素を検索するためのAPIです。Selenium 4では以下のような位置的指定子が利用可能です:

メソッド名 意味
above() 指定要素の上にある要素
below() 指定要素の下にある要素
toLeftOf() 指定要素の左にある要素
toRightOf() 指定要素の右にある要素
near() 指定要素の近くにある要素

使用例(Javaの場合)

java
WebElement label = driver.findElement(By.id("usernameLabel")); WebElement input = driver.findElement(with(By.tagName("input")).below(label)); input.sendKeys("testuser");

この例では、usernameLabelというIDを持つ要素の下にある input 要素を特定し、そこにテキストを入力しています。


利用メリット

  • 視覚的な構造に依存するため、動的に変化するIDやclass名に依存しなくてよい。

  • テストの可読性が向上し、HTML構造に即した記述が可能。

  • 保守性が高い:画面設計の変更に柔軟に対応できる。


注意点

  • 相対ロケーターはすべての要素に対して常に安定して機能するとは限らないため、必要に応じて明示的なロケーターと併用するのが望ましい。

  • DOMの構造が極端に複雑な場合や、対象要素が動的に変化する場合には誤検出や曖昧な一致が発生する可能性がある。


対応言語

相対ロケーターは、Java、Python、C#、JavaScriptなど主要な言語バインディングでサポートされています。


まとめ

Selenium 4の相対ロケーターは、従来のロケーター手法に加えて、画面上の要素の視覚的な関係性を用いた直感的な要素検索を可能にする強力な機能です。これにより、テストコードの保守性・可読性が向上し、UI変更への柔軟性も高まります。Selenium 4への移行に際しては、この機能の活用が大きなメリットとなります。

ChatGPT4o 生成日:2025/06/21