Cara Menangani Peringatan & Popup di Selenium?

โšก Ringkasan Cerdas

Peringatan dan pop-up di Selenium adalah JavaSkrip dialog dan jendela anak yang menghambat alur otomatisasi. Artikel ini menjelaskan cara mengidentifikasi peringatan sederhana, permintaan, dan konfirmasi, beralih ke peringatan tersebut dengan WebDriver, dan mengelola beberapa jendela menggunakan getWindowHandles().

  • ๐Ÿ”” Definisi Inti: A Selenium peringatan adalah JavaDialog skrip yang ditampilkan di atas halaman harus ditangani sebelum tindakan lebih lanjut.
  • ๏ธ Tiga Jenis Peringatan: Simple (info), Prompt (input teks), dan Confirmation (Ya/Tidak) masing-masing memerlukan panggilan WebDriver yang berbeda.
  • ๏ธ API Peringatan: Gunakan driver.switchTo().alert() dengan accept(), dismiss(), getText(), dan sendKeys() untuk berinteraksi dengan dialog.
  • ๐ŸชŸ Penanganan Jendela: getWindowHandle() mengembalikan ID jendela saat ini; getWindowHandles() mengembalikan Set lengkap untuk beralih antar jendela.
  • ๐Ÿš€ Selenium Catatan 4: Selenium Pengelola secara otomatis menyelesaikan driver, sehingga menghilangkan kebutuhan akan jalur chromedriver.exe yang dikodekan secara manual.
  • ๐Ÿค– Bantuan AI: Agen AI menghasilkan skrip peringatan dan jendela yang peka terhadap lokasi, mengurangi pekerjaan manual dalam rangkaian pengujian.

Cara Menangani Peringatan & Popup di Selenium

Apa itu Peringatan dalam Selenium?

An Peringatan masuk Selenium kecil JavaKotak dialog skrip yang muncul di layar untuk memberikan informasi atau pemberitahuan kepada pengguna. Kotak dialog ini dapat mengkonfirmasi tindakan tertentu, meminta izin untuk melakukan suatu operasi, atau menampilkan pesan peringatan.

Dalam tutorial ini, Anda akan mempelajari cara menangani popup di Selenium dan berbagai jenis peringatan yang ditemukan di aplikasi web. pengujianKita juga akan melihat cara menangani peringatan di Selenium WebDriver dan cara menerima atau menolaknya tergantung pada jenis peringatan.

Jenis Peringatan di Selenium

JavaSkrip ini menampilkan tiga dialog peringatan yang Selenium Harus ditangani secara berbeda.

1) Simple Alert

Peringatan sederhana menampilkan informasi atau peringatan di layar. Pengguna hanya dapat mengakuinya dengan mengklik OK.

Contoh dialog peringatan sederhana di browser.

2) Prompt Alert

Peringatan tersebut meminta input dari pengguna. Selenium WebDriver dapat mengetik ke dalamnya menggunakan sendKeys("input...").

Dialog peringatan cepat dengan kolom input

3) Confirmation Alert

Notifikasi konfirmasi meminta pengguna untuk menyetujui atau membatalkan suatu operasi. Notifikasi ini menampilkan keduanya. OK ke Cancel tombol.

Dialog peringatan konfirmasi dengan tombol OK dan Batal

Cara Menangani Peringatan di Selenium webdriver

The Alert antarmuka dalam Selenium webdriver mengungkap empat metode yang mencakup setiap interaksi peringatan.

  1. batal menolak() โ€” mengklik Cancel .
driver.switchTo().alert().dismiss();
  1. batal menerima() โ€” mengklik OK .
driver.switchTo().alert().accept();
  1. String dapatkanTeks() โ€” menangkap pesan peringatan.
driver.switchTo().alert().getText();
  1. batalkan sendKeys(String stringToSend) โ€” mengetik teks ke dalam peringatan prompt.
driver.switchTo().alert().sendKeys("Text");

Eclipse Fitur pelengkapan otomatis menampilkan metode peringatan yang tersedia setelah mengetik.ping alert. pada baris editor. Beralih dari jendela utama ke peringatan kapan saja menggunakan Selenium'S .beralih ke() Metode.

Eclipse Pelengkapan otomatis yang menampilkan metode penanganan peringatan

Contoh Soal: Hapus Demo Pelanggan

Mari kita otomatiskan skenario berikut. Kita akan menggunakan Guru99 situs demo untuk ilustrasi Selenium penanganan peringatan.

Langkah 1) Buka browser dan jalankan https://demo.guru99.com/test/delete_customer.php.

Langkah 2) Masukkan ID Pelanggan apa pun.

Hapus halaman demo Pelanggan dengan kolom ID Pelanggan

Langkah 3) klik Kirim .

Klik tombol Kirim untuk memicu peringatan konfirmasi.

Langkah 4) Terima atau abaikan peringatan konfirmasi yang muncul.

Peringatan konfirmasi dipicu oleh tindakan penghapusan.

Selenium Java Code: Menangani Confirmation Alert

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.Alert;

public class AlertDemo {

    public static void main(String[] args) throws NoAlertPresentException, InterruptedException {
        // Selenium 4 ships Selenium Manager, so an explicit driver path is no longer required.
        WebDriver driver = new ChromeDriver();

        // Open the Delete Customer demo page
        driver.get("https://demo.guru99.com/test/delete_customer.php");

        driver.findElement(By.name("cusid")).sendKeys("53920");
        driver.findElement(By.name("submit")).submit();

        // Switch to the confirmation alert
        Alert alert = driver.switchTo().alert();

        // Capture the alert message
        String alertMessage = alert.getText();
        System.out.println(alertMessage);
        Thread.sleep(5000);

        // Accept the alert
        alert.accept();

        driver.quit();
    }
}

Keluaran: Browser membuka halaman Hapus Pelanggan, mengirimkan ID pelanggan, menerima peringatan konfirmasi, dan menghapus data dari aplikasi demo.

Cara Menangani Popup Windows in Selenium webdriver

Ketika otomatisasi harus berjalan di beberapa jendela browser, pengujian harus mengalihkan fokus di antara jendela-jendela tersebut dan kembali ke jendela induk setelah setiap operasi. Selenium WebDriver menyediakan dua metode yang memungkinkan hal ini.

driver.getWindowHandles()

Mengembalikan Set<String> dari setiap handle jendela yang terbuka. Ulangi himpunan tersebut untuk beralih dari jendela utama ke jendela anak mana pun dalam aplikasi.

driver.getWindowHandle()

Mengembalikan String dengan handle unik dari jendela saat ini. Catat ini sebelum membuka jendela anak mana pun sehingga Anda dapat kembali ke jendela induk nanti.

Ikuti langkah-langkah ini untuk mendemonstrasikan penanganan jendela terhadap GuruDemo pop-up 99.

Contoh Soal: Beralih Jendela

Langkah 1) Buka browser dan jalankan https://demo.guru99.com/popup.php.

Guru99 demo popup landing page

Langkah 2) klik Klik disini tautan. Jendela anak baru terbuka.

Jendela anak terbuka dari tautan Klik Di Sini

Langkah 3) Jendela anak meminta pengguna untuk memasukkan alamat email dan mengirimkannya.

Formulir input email jendela anak

Langkah 4) Masukkan alamat email dan kirimkan.

Pengiriman email di dalam jendela anak

Langkah 5) Halaman ini menampilkan kredensial akses yang dikembalikan oleh demo.

Kredensial akses ditampilkan di jendela anak.

Setelah tampilan kredensial:

  1. Tutup jendela anak.

Menutup jendela anak di browser.

  1. Alihkan fokus kembali ke jendela induk.

Mengalihkan fokus kembali ke jendela induk

Selenium Java Code: Tangani Beberapa Windows

import java.util.Iterator;
import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class WindowHandle_Demo {

    public static void main(String[] args) throws InterruptedException {
        // Selenium 4 auto-resolves the browser driver via Selenium Manager
        WebDriver driver = new FirefoxDriver();

        driver.get("https://demo.guru99.com/popup.php");
        driver.manage().window().maximize();

        driver.findElement(By.xpath("//*[contains(@href,'popup.php')]")).click();

        String mainWindow = driver.getWindowHandle();

        // Capture every open window handle
        Set<String> allWindows = driver.getWindowHandles();
        Iterator<String> iterator = allWindows.iterator();

        while (iterator.hasNext()) {
            String childWindow = iterator.next();

            if (!mainWindow.equalsIgnoreCase(childWindow)) {
                // Switch to the child window
                driver.switchTo().window(childWindow);
                driver.findElement(By.name("emailid")).sendKeys("gaurav.3n@gmail.com");
                driver.findElement(By.name("btnLogin")).click();

                // Close the child window
                driver.close();
            }
        }
        // Return focus to the main window
        driver.switchTo().window(mainWindow);
        driver.quit();
    }
}

Keluaran: Situs tersebut diluncurkan, Klik disini tautan membuka tab anak, Selenium memasukkan alamat email dan mengirimkannya, menutup jendela anak, dan kembali ke jendela induk.

Penanganan beberapa jendela selesai dalam Selenium

Kesimpulan

  • Mendefinisikan ketiganya Selenium Jenis peringatan โ€” sederhana, permintaan, dan konfirmasi โ€” dengan tangkapan layar untuk masing-masing.
  • Demonstrasi penanganan peringatan dengan WebDriver Alert antarmuka menggunakan skenario penghapusan pelanggan yang berfungsi.
  • Mengelola beberapa jendela browser dengan menangkap handle menggunakan getWindowHandle() ke getWindowHandles() dan beralih di antara keduanya.

Pertanyaan Umum Demo Slot

Peringatan adalah fitur bawaan. JavaDialog skrip yang menangguhkan halaman hingga ditangani. Jendela pop-up adalah jendela atau tab browser baru. Peringatan menggunakan switchTo().alert(); pop-up menggunakan switchTo().window() dengan handle yang dikembalikan oleh getWindowHandles().

NoAlertPresentException dilemparkan ketika switchTo().alert() dijalankan tetapi tidak ada peringatan yang sedang ditampilkan. Bungkus panggilan tersebut dengan WebDriverWait hingga ExpectedConditions.alertIsPresent() bernilai true untuk memberi waktu pada halaman untuk memicu dialog.

Popup otentikasi dasar bukanlah hal yang standar. JavaPeringatan skrip. Masukkan kredensial di URL (https://user:pass@site.com) atau gunakan Selenium 4. CDP Network.setExtraHTTPHeaders. Untuk popup SSO, gunakan BrowserStack atau handler hasAuthentication yang terdaftar.

Asisten AI seperti AI Asisten pengembang kode menghasilkan penanganan peringatan yang peka terhadap lokasi, memprediksi waktu tunggu yang dibutuhkan, dan melakukan refaktor pada XPath yang rentan. Mereka juga menyusun pernyataan untuk teks peringatan dan jendela anak. URLs, mempercepat Selenium pembuatan tes.

Ya. Platform pengujian yang dapat memperbaiki diri sendiri menggunakan AI untuk mendeteksi perubahan DOM, mengganti locator yang rusak, dan menyesuaikan waktu tunggu saat peringatan atau popup bergeser. Hal ini mengurangi pemeliharaan untuk Selenium rangkaian perangkat lunak yang berjalan dengan antarmuka pengguna (front end) yang sering diperbarui.

Ringkaslah postingan ini dengan: