FindElement oleh XPath di Selenium

โšก Ringkasan Cerdas

FindElement oleh XPath di Selenium Perintah `findElements` secara unik mengidentifikasi satu elemen web pada suatu halaman, sementara `FindElements` mengembalikan daftar lengkap elemen yang cocok. Kedua perintah tersebut menerima objek locator `By` yang mencakup strategi ID, Nama, Nama Kelas, dan XPath.

  • โœ… Prinsip Inti: FindElement mengembalikan WebElement pertama yang cocok; FindElements mengembalikan daftar yang diindeks dari nol, seperti array.
  • โš ๏ธ Penanganan Pengecualian: FindElement akan melempar NoSuchElementException ketika tidak ada kecocokan, sedangkan FindElements akan mengembalikan daftar kosong alih-alih gagal.
  • ๐Ÿงญ Strategi Pencarian Lokasi: Pilih di antara ID, Nama, Nama Kelas, Nama Tag, Teks Tautan, Teks Tautan Sebagian, dan XPath.
  • ๐Ÿงฉ Fokus Implementasi: Lewatkan objek By dengan nilai locator unik ke elemen target secara andal dalam skrip WebDriver.
  • ๐Ÿš€ Aplikasi praktis: Kerja Java Contoh-contoh tersebut menunjukkan cara mengklik tombol radio dan mengulang daftar elemen pada halaman demo.

FindElement oleh XPath di Selenium

In Selenium WebDriver, TemukanElemen ke TemukanElemen adalah perintah inti yang digunakan untuk menemukan elemen web pada suatu halaman sebelum tindakan apa pun, seperti klik atau memasukkan teks, dapat dilakukan pada elemen tersebut.

Mengapa Anda memerlukan perintah Temukan Elemen?

Interaksi dengan halaman web mengharuskan pengguna untuk menemukan elemen web terlebih dahulu. Perintah Temukan Elemen digunakan untuk mengidentifikasi secara unik satu elemen web dalam halaman web, sedangkan perintah Temukan Elemen digunakan untuk mengidentifikasi daftar elemen web. Suatu elemen dapat diidentifikasi menggunakan beberapa cara. strategi pencari lokasi seperti ID, Nama, Nama Kelas, Teks Tautan, Teks Tautan Sebagian, Nama Tag dan XPath.

Sintaks perintah FindElement

Berikut adalah sintaks perintah FindElement. Selenium Pengemudi Web:

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

Perintah FindElement mengambil objek By sebagai parameter dan mengembalikan satu objek bertipe WebElement. Objek By, pada gilirannya, dapat digunakan dengan berbagai strategi pencari lokasi seperti ID, Nama, Nama Kelas, XPath, dll.

Strategi Lokator dapat berupa salah satu dari nilai-nilai berikut:

  • ID
  • Nama
  • Nama kelas
  • Nama Tag
  • Link Text
  • Teks Tautan Parsial
  • XPath

Nilai Lokator adalah nilai unik yang digunakan untuk mengidentifikasi elemen web. Merupakan tanggung jawab pengembang dan penguji untuk memastikan bahwa elemen web dapat diidentifikasi secara unik menggunakan properti tertentu seperti ID atau Nama.

Contoh:

WebElement loginLink = driver.findElement(By.linkText("Login"));

Contoh: Temukan Elemen di Selenium

Aplikasi demo berikut digunakan untuk menunjukkan cara kerja perintah FindElement:

https://demo.guru99.com/test/ajax.html

Skenario:

Langkah 1: Buka AUT

Langkah 2: Temukan dan klik tombol radio, lalu klik tombol Periksa.

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("https://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();

}

}

Sintaks perintah FindElements

Saat Anda membutuhkan semua elemen yang cocok dengan locator, bukan hanya elemen pertama, gunakan FindElements. Berikut sintaksnya:

List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));

Perintah FindElements mengambil objek By sebagai parameter dan mengembalikan daftar elemen web. Perintah ini mengembalikan daftar kosong jika tidak ada elemen yang ditemukan menggunakan strategi pencari dan nilai pencari yang diberikan.

Contoh:

List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));

Contoh: Temukan Elemen di Selenium

Aplikasi demo yang sama digunakan untuk menunjukkan bagaimana FindElements melakukan iterasi pada daftar elemen yang cocok.

Skenario:

Langkah 1: Buka URL untuk Aplikasi yang Sedang Diuji

Langkah 2: Temukan teks tombol radio dan cetak ke konsol output.

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("https://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"));
    }
  }
}

Temukan Elemen vs Temukan Elemen-elemen

Berikut adalah perbedaan utama antara perintah Find Element dan Find Elements:

Temukan Elemen vs Temukan Elemen di Selenium

Temukan Elemen Temukan Elemen
Mengembalikan elemen web pertama jika ditemukan beberapa elemen web dengan locator yang sama. Mengembalikan daftar elemen web
Melempar pengecualian NoSuchElementException jika tidak ada elemen yang cocok dengan strategi pencari lokasi. Mengembalikan daftar kosong jika tidak ada elemen web yang cocok dengan strategi pencari lokasi
Pencarian Elemen berdasarkan XPath hanya akan menemukan satu elemen web. Sistem ini akan menemukan kumpulan elemen yang sesuai dengan strategi pencari lokasi.
Tidak Berlaku Setiap elemen web diindeks dengan angka yang dimulai dari 0, sama seperti pada array.

Pertanyaan Umum Demo Slot

penggunaan Selenium menunggu secara implisit atau eksplisit Jadi, driver terus memantau halaman hingga elemen tersebut muncul. Penantian eksplisit dengan WebDriverWait dan kondisi yang diharapkan adalah pendekatan yang paling andal untuk halaman dinamis yang digerakkan oleh AJAX.

ID adalah locator tercepat dan paling andal karena browser mengindeksnya secara langsung. Selektor CSS umumnya lebih cepat daripada XPath, jadi gunakan XPath hanya untuk kasus di mana tidak ada ID, Nama, atau kelas unik yang tersedia.

Ya. Asisten pengujian berbasis AI dapat menganalisis DOM dan menyarankan locator XPath atau CSS yang stabil secara otomatis, sehingga mengurangi waktu inspeksi manual. RevPeriksa kembali locator yang dihasilkan untuk memastikan keunikannya sebelum menambahkannya ke rangkaian pengujian produksi.

Kerangka kerja yang dapat memperbaiki diri sendiri menggunakan AI untuk mendeteksi kapan sebuah locator rusak setelah perubahan UI dan secara otomatis menggantinya dengan elemen yang paling cocok. Hal ini mengurangi pemeliharaan pengujian yang disebabkan oleh seringnya perubahan atribut elemen.

Ringkaslah postingan ini dengan: