Elemen Web di Selenium
⚡ Ringkasan Cerdas
Elemen Web di Selenium merepresentasikan setiap kontrol formulir sebagai objek yang dapat diprogram, memungkinkan penguji untuk berinteraksi dengan kolom teks, kotak centang, tombol radio, dan elemen pengiriman menggunakan metode findElement, sendKeys, click, clear, dan submit. Java contoh kode.

Elemen Web di Selenium
Formulir adalah elemen web fundamental yang menangkap informasi dari pengunjung situs web. Formulir web mencakup berbagai kontrol GUI seperti kotak teks, kolom kata sandi, kotak centang, tombol radio, menu tarik-turun, dan input file.
Tutorial ini menjelaskan cara mengakses setiap elemen formulir menggunakan Selenium WebDriver dengan Java. Selenium merangkum setiap elemen formulir sebagai objek WebElement. Fitur ini menyediakan API untuk menemukan elemen dan melakukan tindakan terhadapnya, termasuk memasukkan teks, mengklik tombol, dan mengirimkan formulir. Bagian di bawah ini membahas metode yang tersedia untuk setiap elemen formulir.
Pengantar WebElement, findElement(), findElements()
Selenium WebDriver merepresentasikan elemen formulir sederhana sebagai sebuah objek Elemen Web.
WebDriver mengidentifikasi elemen formulir menggunakan berbagai properti elemen web, termasuk ID, Nama, Kelas, XPath, Nama tag, pemilih CSS, dan teks tautan.
WebDriver menyediakan dua metode WebElement berikut untuk menemukan elemen:
- temukanElemen() – menemukan satu elemen web dan mengembalikannya sebagai WebElement Selenium obyek.
- temukanElemen() – mengembalikan daftar objek WebElement yang cocok dengan kriteria pencari lokasi.
Contoh di bawah ini menunjukkan cara mengambil satu elemen, yaitu kolom teks pada halaman web, sebagai objek WebElement menggunakan metode findElement(). Metode findElements() untuk menemukan beberapa elemen akan dibahas dalam tutorial selanjutnya.
Langkah 1) Impor paket yang diperlukan untuk membuat objek WebElement.
Langkah 2) Panggil metode findElement() yang tersedia di kelas WebDriver untuk mengambil objek WebElement, seperti yang ditunjukkan di bawah ini.
Selenium Masukkan teks
Kotak masukan merujuk pada salah satu dari dua jenis berikut:
- Bidang Teks - Selenium Kotak teks input yang menerima nilai yang diketik dan menampilkannya persis seperti yang dimasukkan.
- Bidang Kata Sandi – kotak teks yang menerima nilai yang diketik tetapi menyamarkannya sebagai serangkaian karakter khusus (biasanya titik atau tanda bintang) untuk menyembunyikan input yang sensitif.
Pelacak
Metode findElement() menerima satu parameter, yaitu locator yang menunjuk ke elemen tersebut. Locator yang berbeda, termasuk By.id(), By.name(), By.xpath(), dan By.cssSelector(), menemukan elemen di halaman menggunakan propertinya seperti id, nama, atau path.
Anda dapat menggunakan plugin seperti FirePath untuk mendapatkan id, xpath, dan nilai locator lainnya untuk elemen.
Menggunakan situs contoh https://demo.guru99.com/test/login.htmlKode di bawah ini menemukan kolom teks "Alamat Email" menggunakan locator id dan kolom "Kata Sandi" menggunakan locator nama.
- Kolom teks email ditemukan berdasarkan ID.
- Kolom kata sandi terletak berdasarkan nama.
kunci kirim masuk Selenium
sendKeys() di Selenium adalah metode yang digunakan untuk memasukkan konten yang dapat diedit ke dalam kolom teks dan kata sandi selama eksekusi pengujian. Kolom-kolom ini diidentifikasi melalui locator seperti nama, kelas, dan id. Metode ini tersedia pada objek WebElement. Tidak seperti metode tipe, sendKeys() tidak mengganti teks yang sudah ada di dalam kotak teks.
Cara Memasukkan Teks ke dalam Selenium
Untuk memasukkan teks ke dalam kolom teks dan kolom kata sandi, metode sendKeys() tersedia pada WebElement. Selenium.
Menggunakan contoh yang sama https://demo.guru99.com/test/login.htmlCuplikan kode di bawah ini menemukan kolom teks dan kolom kata sandi, lalu memasukkan teks ke dalamnya. Selenium.
- Temukan kolom teks “Alamat Email” menggunakan pencari ID.
- Temukan kolom “Kata Sandi” menggunakan pencari nama.
- Masukkan teks ke dalam “Alamat Email” menggunakan Selenium Metode sendKeys.
- Masukkan kata sandi ke dalam kolom “Kata Sandi” menggunakan metode sendKeys().
Menghapus Nilai di Input Boxes
The bersih() Metode ini menghapus teks di dalam kotak input. Metode ini tidak memerlukan parameter. Cuplikan kode di bawah ini menghapus teks dari kolom Email atau Kata Sandi.
Selenium Klik Tombol
The Selenium Tombol klik diakses menggunakan metode click().
Dalam contoh di atas
- Temukan tombol untuk Masuk.
- Klik tombol “Masuk” pada halaman login situs untuk melakukan autentikasi.
Selenium Tombol Kirim
Tombol submit mengirimkan seluruh formulir ke server. Anda dapat memanggil metode click() pada WebElement, seperti yang ditunjukkan di atas, atau menggunakan metode submit() pada elemen apa pun dalam formulir atau pada tombol submit itu sendiri.
Saat fungsi submit() digunakan, WebDriver mencari di DOM untuk mengidentifikasi formulir tempat elemen tersebut berada, lalu memicu fungsi submit-nya.
Menyelesaikan Code
Berikut adalah kode lengkap yang berfungsi.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.*;
public class Form {
public static void main(String[] args) {
// declaration and instantiation of objects/variables
System.setProperty("webdriver.chrome.driver", "G:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String baseUrl = "https://demo.guru99.com/test/login.html";
driver.get(baseUrl);
// Get the WebElement corresponding to the Email Address(TextField)
WebElement email = driver.findElement(By.id("email"));
// Get the WebElement corresponding to the Password Field
WebElement password = driver.findElement(By.name("passwd"));
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
System.out.println("Text Field Set");
// Deleting values in the text box
email.clear();
password.clear();
System.out.println("Text Field Cleared");
// Find the submit button
WebElement login = driver.findElement(By.id("SubmitLogin"));
// Using click method to submit form
email.sendKeys("abcd@gmail.com");
password.sendKeys("abcdefghlkjl");
login.click();
System.out.println("Login Done with Click");
// Using submit method to submit the form. Submit used on password field
driver.get(baseUrl);
driver.findElement(By.id("email")).sendKeys("abcd@gmail.com");
driver.findElement(By.name("passwd")).sendKeys("abcdefghlkjl");
driver.findElement(By.id("SubmitLogin")).submit();
System.out.println("Login Done with Submit");
// driver.close();
}
}
Penyelesaian masalah
Jika Anda menemui NoSuchElementException() saat mencari elemen, berarti elemen tersebut tidak ada di halaman pada saat WebDriver mengaksesnya.
- Periksa kembali locator Anda menggunakan FirePath atau opsi Inspect Element di Chrome.
- Periksa apakah nilai yang digunakan dalam kode berbeda dari nilai elemen saat ini yang terlihat di FirePath.
- Beberapa atribut bersifat dinamis untuk elemen tertentu. Jika suatu nilai berubah secara dinamis, beralihlah ke By.xpath() atau By.cssSelector(), yang lebih andal tetapi sedikit lebih kompleks.
- Terkadang masalahnya adalah kondisi tunggu; WebDriver mungkin mengeksekusi kode sebelum halaman selesai dimuat.
- Tambahkan waktu tunggu sebelum findElement() menggunakan waktu tunggu implisit atau eksplisit.
Ringkasan
- Tabel di bawah ini merangkum perintah untuk mengakses setiap jenis elemen yang dibahas di atas.
| Elemen | perintah | Deskripsi |
|---|---|---|
| Memasukkan Box | sendKeys () | Digunakan untuk memasukkan nilai ke dalam kotak teks. |
| bersih() | Digunakan untuk menghapus nilai teks pada kotak teks. | |
| Link | klik() | Digunakan untuk mengklik tautan dan menunggu hingga halaman selesai dimuat sebelum melanjutkan ke perintah berikutnya. |
| Kirim Tombol | kirim() | Digunakan untuk mengirimkan formulir dengan memicu penanganan pengiriman formulir induk. |
- WebDriver memungkinkan pemilihan lebih dari satu opsi dalam beberapa elemen SELECT.
- Anda dapat menggunakan metode submit() pada elemen apa pun di dalam formulir. WebDriver secara otomatis memicu fungsi submit dari formulir tempat elemen tersebut berada.






