要素を検索 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"));
    }
  }
}

要素の検索と要素の検索

以下に、要素の検索と要素の検索コマンドの主な違いを示します。

要素の検索と要素の検索
要素の検索と要素の検索 Selenium
要素の検索 要素の検索
同じロケーターを持つ複数の Web 要素が見つかった場合は、最初の Web 要素を返します。 Web要素のリストを返します。
ロケーター戦略に一致する要素がない場合は、例外 NoSuchElementException をスローします。 ロケーター戦略に一致する Web 要素がない場合は、空のリストを返します。
XPath による要素の検索では、Web 要素が XNUMX つだけ検索されます ロケーター戦略に一致する要素のコレクションが検索されます。
適用されない 各 Web 要素には、配列と同じように 0 から始まる番号でインデックスが付けられます。

まとめ

  • Find Element コマンドは、Web ページ内の最初の要素に一致する Web 要素を返します。
  • [要素の検索] コマンドは、条件に一致する Web 要素のリストを返します。
  • XPath による要素の検索 Selenium コマンドは、条件に一致する要素が見つからない場合、NoSuchElementException をスローします。
  • 「要素の検索」コマンドは空のリストを返します Selenium 条件に一致する要素がない場合