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.

  • 🧩 Ketepatan Lokasi: Identifikasi elemen formulir berdasarkan id, nama, xpath, atau pemilih CSS melalui findElement() untuk memastikan interaksi yang stabil dengan DOM.
  • Penanganan Masukan: Kirim teks yang dapat diedit ke dalam kolom menggunakan sendKeys() tanpa menimpa nilai yang sudah ada selama eksekusi otomatis.
  • 🧹 Reset Bidang: Bersihkan kotak input melalui metode clear() sebelum memasukkan data kembali, untuk mencegah nilai sisa dalam pernyataan selanjutnya.
  • Interaksi Tombol: Memicu tindakan masuk atau navigasi melalui metode click() pada referensi WebElement yang sesuai.
  • 📨 Pengajuan Formulir: Gunakan `submit()` pada elemen apa pun di dalam formulir agar WebDriver secara otomatis mengirimkan handler pengiriman formulir induknya.
  • 🛡️ Tips Stabilitas: Tambahkan penundaan implisit atau eksplisit sebelum panggilan findElement() untuk mencegah NoSuchElementException pada halaman yang dimuat secara dinamis.

Elemen Web di Selenium

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

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:

  1. Bidang Teks - Selenium Kotak teks input yang menerima nilai yang diketik dan menampilkannya persis seperti yang dimasukkan.
  2. 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.

    Selenium Masukkan teks

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.

Pelacak

  1. Kolom teks email ditemukan berdasarkan ID.
  2. 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.

Teks masuk Selenium

  1. Temukan kolom teks “Alamat Email” menggunakan pencari ID.
  2. Temukan kolom “Kata Sandi” menggunakan pencari nama.
  3. Masukkan teks ke dalam “Alamat Email” menggunakan Selenium Metode sendKeys.
  4. 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.

Menghapus Nilai di Input Boxes

Selenium Klik Tombol

The Selenium Tombol klik diakses menggunakan metode click().

Dalam contoh di atas

  1. Temukan tombol untuk Masuk.
  2. Klik tombol “Masuk” pada halaman login situs untuk melakukan autentikasi.

Selenium Klik Tombol

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.

Selenium Tombol Kirim

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.

  1. Periksa kembali locator Anda menggunakan FirePath atau opsi Inspect Element di Chrome.
  2. Periksa apakah nilai yang digunakan dalam kode berbeda dari nilai elemen saat ini yang terlihat di FirePath.
  3. 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.
  4. Terkadang masalahnya adalah kondisi tunggu; WebDriver mungkin mengeksekusi kode sebelum halaman selesai dimuat.
  5. 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.

Pertanyaan Umum Demo Slot

findElement() mengembalikan WebElement pertama yang cocok dan melempar NoSuchElementException jika tidak ada yang cocok. findElements() mengembalikan daftar WebElement yang cocok dan mengembalikan daftar kosong jika tidak ada elemen yang cocok dengan locator.

WebElement adalah sebuah Selenium Pembungkus yang mengekspos metode otomatisasi seperti sendKeys, click, dan clear. Elemen HTML adalah node DOM yang mendasarinya. WebDriver menemukan node DOM dan mengembalikan referensi WebElement untuk interaksi.

Ya. Alat bantu berbasis AI menganalisis DOM dan menyarankan locator yang stabil menggunakan id, nama, xpath relatif, atau selektor CSS. Alat ini mengurangi kerentanan locator dengan mendeteksi kombinasi atribut unik dan menyarankan fallback ketika suatu atribut berubah.

Ya. Locator yang dapat memperbaiki diri sendiri berbasis AI secara otomatis mengikat ulang WebElement ketika atribut berubah. Ini mengurangi kegagalan yang tidak menentu, menurunkan upaya pemeliharaan, dan menjaga Selenium rangkaian perangkat lunak tetap stabil di tengah pembaruan UI yang sering terjadi dalam siklus pengiriman yang tangkas.

Pengecualian WebElement yang umum meliputi StaleElementReferenceException, ElementNotInteractableException, ElementClickInterceptedException, InvalidElementStateException, dan TimeoutException. Masing-masing menunjukkan masalah DOM, visibilitas, atau sinkronisasi yang berbeda yang harus ditangani dengan penundaan atau penyegaran referensi elemen.

Ringkaslah postingan ini dengan: