要素を検索 Selenium – XPathによる要素の検索
「要素の検索」コマンドが必要な理由は何ですか?
Web ページと対話するには、ユーザーが Web 要素を見つける必要があります。 Find Element コマンドは、Web ページ内の (XNUMX つの) Web 要素を一意に識別するために使用されます。 一方、要素の検索コマンドは、Web ページ内の Web 要素のリストを一意に識別するために使用されます。 ID、名前、クラス名、リンク テキスト、部分リンク テキスト、タグ名、XPATH など、Web ページ内の Web 要素を一意に識別する方法は複数あります。
FindElement コマンド構文
WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));
Selenium Find Element コマンドは By オブジェクトをパラメータとして受け取り、リスト WebElement 型のオブジェクトを返します。 Selenium。オブジェクトごとは、ID による要素の検索などのさまざまなロケーター戦略で使用できます。 Selenium、名前、クラス名、XPATH など。以下は、FindElement コマンドの構文です。 Selenium ウェブドライバー。
ロケーター戦略は、次のいずれかの値になります。
- ID
- Selenium 名前で要素を検索
- クラス名
- タグ名
- リンクテキスト
- 部分的なリンクテキスト
- XPATH
ロケーター値は、Web 要素を識別できる一意の値です。 ID や名前などの特定のプロパティを使用して Web 要素を一意に識別できることを確認するのは、開発者とテスターの責任です。
例:
WebElement loginLink = driver.findElement(By.linkText("Login"));
例: 要素を検索 Selenium
以下のアプリケーションはデモ目的で使用されます
http://demo.guru99.com/test/ajax.html
シナリオ:
ステップ1: AUTを開く
ステップ2: ラジオボタンを見つけてクリックします
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class NameDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("http://demo.guru99.com/test/ajax.html"); // Find the radio button for “No” using its ID and click on it driver.findElement(By.id("no")).click(); //Click on Check Button driver.findElement(By.id("buttoncheck")).click(); } }
FindElements コマンド構文
List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));
要素を検索 Selenium コマンドは By オブジェクトをパラメータとして受け取り、Web 要素のリストを返します。指定されたロケーター戦略とロケーター値を使用して要素が見つからない場合は、空のリストを返します。以下は要素検索コマンドの構文です。
例:
List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));
例: 要素を検索 Selenium
シナリオ:
ステップ1: テスト対象アプリケーションの URL を開きます
ステップ1: ラジオ ボタンのテキストを検索し、出力コンソールに出力します。
package com.sample.stepdefinitions; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; public class NameDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://demo.guru99.com/test/ajax.html"); List<WebElement> elements = driver.findElements(By.name("name")); System.out.println("Number of elements:" +elements.size()); for (int i=0; i<elements.size();i++){ System.out.println("Radio button text:" + elements.get(i).getAttribute("value")); } } }
要素の検索と要素の検索
以下に、要素の検索と要素の検索コマンドの主な違いを示します。
要素の検索 | 要素の検索 |
---|---|
同じロケーターを持つ複数の Web 要素が見つかった場合は、最初の Web 要素を返します。 | Web要素のリストを返します。 |
ロケーター戦略に一致する要素がない場合は、例外 NoSuchElementException をスローします。 | ロケーター戦略に一致する Web 要素がない場合は、空のリストを返します。 |
XPath による要素の検索では、Web 要素が XNUMX つだけ検索されます | ロケーター戦略に一致する要素のコレクションが検索されます。 |
適用されない | 各 Web 要素には、配列と同じように 0 から始まる番号でインデックスが付けられます。 |
まとめ
- Find Element コマンドは、Web ページ内の最初の要素に一致する Web 要素を返します。
- [要素の検索] コマンドは、条件に一致する Web 要素のリストを返します。
- XPath による要素の検索 Selenium コマンドは、条件に一致する要素が見つからない場合、NoSuchElementException をスローします。
- 「要素の検索」コマンドは空のリストを返します Selenium 条件に一致する要素がない場合