Elemen Web di Selenium: TeksBox, Tombol, tombol kirim(), klik()
Elemen Web di Selenium
Formulir merupakan elemen dasar web untuk menerima informasi dari pengunjung situs web. Formulir web memiliki berbagai elemen GUI seperti kotak teks, kolom kata sandi, kotak centang, tombol radio, menu dropdown, input file, dll.
Kita akan melihat cara mengakses elemen formulir yang berbeda ini menggunakan Selenium Pengemudi Web dengan Java. Selenium merangkum setiap elemen formulir sebagai objek WebElement. Aplikasi ini menyediakan API untuk menemukan elemen dan mengambil tindakan terhadap elemen tersebut, seperti memasukkan teks ke dalam kotak teks, mengklik tombol, dan lain-lain. Kita akan melihat metode yang tersedia untuk mengakses setiap elemen formulir.
Pengantar WebElement, findElement(), findElements()
Selenium Web Driver merangkum elemen formulir sederhana sebagai objek Elemen Web.
Ada berbagai teknik yang digunakan WebDriver untuk mengidentifikasi elemen formulir berdasarkan properti berbeda dari elemen Web seperti ID, Nama, Kelas, XPath, Nama Tag, Pemilih CSS, Teks tautan, dll.
Web Driver menyediakan dua metode WebElement berikut untuk menemukan elemen.
- temukanElemen() – menemukan satu elemen web dan kembali sebagai WebElement Selenium obyek.
- temukanElemen() – mengembalikan daftar objek WebElement yang cocok dengan kriteria pencari lokasi.
Mari kita lihat cuplikan kode untuk mendapatkan satu elemen – Bidang Teks di halaman web sebagai objek WebElement menggunakan metode findElement(). Kita akan membahas metode findElements() untuk menemukan banyak elemen di tutorial selanjutnya.
Langkah 1) Kita perlu mengimpor paket ini untuk membuat objek Elemen Web
Langkah 2) Kita perlu memanggil metode findElement() yang tersedia di kelas WebDriver dan mendapatkan objek WebElement.
Lihat di bawah untuk melihat cara melakukannya.
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 sebagaimana adanya.
- Bidang Kata Sandi– kotak teks yang menerima nilai yang diketik tetapi menutupinya sebagai serangkaian karakter khusus (biasanya titik dan tanda bintang) untuk menghindari nilai sensitif ditampilkan.
Pelacak
Metode findElement() mengambil satu parameter yang merupakan pencari lokasi elemen. Pencari lokasi yang berbeda seperti By.id(), By.name(), By.xpath(), By.CSSSelector() dll. mencari elemen di halaman menggunakan propertinya seperti """ id, nama atau jalur, dll.
Anda dapat menggunakan plugin seperti Fire path untuk mendapatkan bantuan dalam mendapatkan id, xpath, dll. dari elemen.
Menggunakan situs contoh https://demo.guru99.com/test/login.html berikut adalah kode untuk mencari kolom teks “Alamat email” menggunakan pencari id dan kolom “Kata sandi” menggunakan pencari nama.
- Bidang teks email terletak berdasarkan Id
- Bidang kata sandi terletak berdasarkan nama
kunci kirim masuk Selenium
kunci kirim() masuk Selenium adalah metode yang digunakan untuk memasukkan konten yang dapat diedit di bidang teks dan kata sandi selama pelaksanaan pengujian. Bidang-bidang ini diidentifikasi menggunakan penentu lokasi seperti nama, kelas, id, dll. Ini adalah metode yang tersedia di elemen web. Tidak seperti metode tipe, metode sendkeys() tidak mengganti teks yang ada di kotak teks mana pun.
Cara Memasukkan Teks ke dalam Selenium
Untuk memasukkan teks ke dalam Bidang Teks dan Bidang Kata Sandi, sendKeys() adalah metode yang tersedia di WebElement di Selenium.
Menggunakan contoh yang sama https://demo.guru99.com/test/login.html situs, inilah cara kami menemukan bidang Teks dan bidang Kata Sandi dan memasukkan teks Selenium.
- Temukan kolom teks “Alamat Email” menggunakan pencari ID.
- Temukan bidang "Kata Sandi" menggunakan pencari nama
- Masukkan teks ke dalam “Alamat Email” menggunakan Selenium metode sendkey.
- Masukkan kata sandi ke dalam kolom “Kata Sandi” menggunakan metode sendKeys().
Menghapus Nilai di Input Boxes
bersih() Metode ini digunakan untuk menghapus teks dalam kotak input. Metode ini tidak memerlukan parameterPotongan kode di bawah ini akan menghapus teks dari kolom Email atau Kata Sandi
Selenium Klik Tombol
Selenium tombol klik dapat diakses menggunakan metode click().
Dalam contoh di atas
- Temukan tombol untuk Masuk
- Klik Tombol “Masuk” di halaman login situs untuk login ke situs.
Selenium Tombol Kirim
Tombol kirim digunakan untuk mengirimkan seluruh formulir ke server. Kita bisa menggunakan metode klik () pada elemen web seperti tombol biasa seperti yang telah kita lakukan di atas, atau menggunakan metode kirim () pada elemen web apa pun dalam formulir atau pada tombol kirim itu sendiri.
Saat submit() digunakan, WebDriver akan mencari DOM untuk mengetahui bentuk elemen tersebut, dan kemudian memicu fungsi kirimnya.
Kode Lengkap
Berikut adalah kode kerja lengkapnya
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 menemukan NoSuchElementException() saat mencari elemen, itu berarti elemen tersebut tidak ditemukan di halaman pada saat driver Web mengakses halaman tersebut.
- Periksa kembali pencari lokasi Anda menggunakan Firepath atau Inspect Element di Chrome.
- Periksa apakah nilai yang Anda gunakan dalam kode berbeda dengan nilai elemen di Firepath sekarang.
- Beberapa properti bersifat dinamis untuk beberapa elemen. Jika Anda menemukan bahwa nilainya berbeda dan berubah secara dinamis, pertimbangkan untuk menggunakan By.xpath() atau By.cssSelector() yang merupakan cara yang lebih andal tetapi rumit.
- Kadang-kadang, ini bisa menjadi masalah menunggu juga misalnya, driver Web mengeksekusi kode Anda bahkan sebelum halaman dimuat sepenuhnya, dll.
- 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 | Description |
---|---|---|
Memasukkan Box | sendKeys () | digunakan untuk memasukkan nilai ke kotak teks |
bersih() | digunakan untuk menghapus kotak teks dari nilai saat ini | |
Link | klik() | digunakan untuk mengklik link dan menunggu pemuatan halaman selesai sebelum melanjutkan ke perintah berikutnya. |
Kirim Tombol | kirim() |
- WebDriver memungkinkan pemilihan lebih dari satu opsi dalam beberapa elemen SELECT.
- Anda dapat menggunakan metode submit() pada elemen apa pun di dalam formulir. WebDriver akan secara otomatis memicu fungsi kirim formulir tempat elemen tersebut berada.