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.
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 | 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. |


