Selenium Penanganan Jendela Peringatan & Popup: Bagaimana Cara Menanganinya?
Apa yang dimaksud dengan Peringatan Selenium?
An Peringatan masuk Selenium adalah kotak pesan kecil yang muncul di layar untuk memberikan informasi atau pemberitahuan kepada pengguna. Kotak ini memberi tahu pengguna dengan beberapa informasi atau kesalahan tertentu, meminta izin untuk melakukan tugas tertentu, dan juga memberikan pesan peringatan.
Dalam tutorial ini, kita akan mempelajari cara menangani popup di Selenium dan berbagai jenis peringatan yang ditemukan di aplikasi web pengujian. Kita juga akan melihat cara menangani Alert in Selenium WebDriver dan pelajari bagaimana kami menerima dan menolak peringatan tergantung pada jenis peringatannya.
Jenis Peringatan di Selenium
1) Simple Alert
Kelas peringatan sederhana di Selenium menampilkan beberapa informasi atau peringatan di layar.
2) Prompt Alert
Kredensial mikro Prompt Alert meminta beberapa masukan dari pengguna dan Selenium webdriver dapat memasukkan teks menggunakan sendkeys(”input….“).
3) Confirmation Alert
Peringatan konfirmasi ini meminta izin untuk melakukan beberapa jenis operasi.
Bagaimana menangani Alert di Selenium webdriver
Antarmuka peringatan menyediakan beberapa metode di bawah ini yang banyak digunakan Selenium Driver web.
1) batal menolak() // Untuk mengklik tombol 'Batal' pada peringatan.
driver.switchTo().alert().dismiss();
2) batal menerima()// Untuk mengklik tombol 'OK' pada peringatan.
driver.switchTo().alert().accept();
3) String dapatkanTeks() // Untuk menangkap pesan peringatan.
driver.switchTo().alert().getText();
4) batalkan sendKeys(String stringToSend) // Untuk mengirim beberapa data ke kotak peringatan.
driver.switchTo().alert().sendKeys("Text");
Anda dapat melihat sejumlah metode Peringatan ditampilkan seperti yang ditunjukkan pada layar di bawah yang disarankan oleh Eclipse.
Kita dapat dengan mudah beralih ke peringatan dari jendela utama dengan menggunakan Selenium'S .beralih ke() Metode.
Sekarang kami mengotomatiskan skenario di bawah ini.
Dalam skenario ini, kami akan menggunakan situs demo Guru99 untuk mengilustrasikannya Selenium Penanganan peringatan.
Langkah 1) Luncurkan browser web dan buka situsnya https://demo.guru99.com/test/delete_customer.php
Langkah 2) Masukkan ID Pelanggan Apa Pun.
Langkah 3) Setelah memasukkan ID pelanggan, Klik tombol “Kirim”.
Langkah 4) Tolak/terima peringatan tersebut.
Menangani Peringatan di Selenium Driver web
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 { System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); // Alert Message handling driver.get("https://demo.guru99.com/test/delete_customer.php"); driver.findElement(By.name("cusid")).sendKeys("53920"); driver.findElement(By.name("submit")).submit(); // Switching to Alert Alert alert = driver.switchTo().alert(); // Capturing alert message. String alertMessage= driver.switchTo().alert().getText(); // Displaying alert message System.out.println(alertMessage); Thread.sleep(5000); // Accepting alert alert.accept(); } }
Keluaran:
Saat Anda menjalankan kode di atas, situs akan diluncurkan. Cobalah untuk menghapus ID Pelanggan dengan menangani peringatan konfirmasi yang ditampilkan di layar, dan dengan demikian menghapus ID pelanggan dari aplikasi.
Cara menangani jendela Pop-up menggunakan Selenium Driver web
Dalam otomatisasi, ketika kita memiliki beberapa jendela dalam aplikasi web apa pun, aktivitas mungkin perlu mengalihkan kontrol di antara beberapa jendela dari satu ke yang lain untuk menyelesaikan operasi. Setelah operasi selesai, ia harus kembali ke jendela utama yaitu jendela induk di Selenium. Kita akan melihat ini lebih lanjut di artikel dengan sebuah contoh.
In Selenium driver web ada beberapa metode yang dapat kita gunakan untuk menangani beberapa jendela.
Driver.getWindowHandles();
Untuk menangani semua jendela yang dibuka oleh web driver, kita dapat menggunakan “Driver.getWindowHandles()” dan kemudian kita dapat berpindah jendela dari satu jendela ke jendela lain dalam aplikasi web. Tipe pengembaliannya adalah Iterator .
Driver.getWindowHandle();
Saat situs terbuka, kita perlu menangani jendela utama driver.getWindowHandle(). Ini akan menangani jendela saat ini yang secara unik mengidentifikasinya dalam contoh driver ini. Tipe pengembaliannya adalah String.
Untuk penanganan Jendela di Selenium, kami akan mengikuti langkah-langkah di bawah ini:
Sekarang, kita akan mengotomatiskan skenario yang diberikan di bawah ini untuk melihat cara menangani beberapa jendela menggunakan Selenium driver web.
Dalam skenario ini, kami akan menggunakan situs demo “Guru99” untuk mengilustrasikan penanganan jendela.
Langkah 1) Luncurkan situsnya.
Luncurkan browser dan buka situsnya https://demo.guru99.com/popup.php
Langkah 2) Klik tautan “Klik Disini”.
Ketika pengguna mengklik link “Klik Disini”, jendela anak baru akan terbuka.
Langkah 3) Jendela Anak Baru terbuka.
Sebuah jendela baru terbuka, minta pengguna memasukkan ID email dan mengirimkan halaman.
Langkah 4) Masukkan ID email Anda dan kirim.
Langkah 5) Tampilkan Kredensial Akses saat mengirimkan halaman.
Saat Anda menjalankan kode, Anda akan melihat jendela anak terbuka di tab baru.
- Tutup jendela Anak tempat kredensial ditampilkan.
- Beralih ke jendela induk.
Cara Menangani Banyak Windows in Selenium
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 { WebDriver driver=new FirefoxDriver(); //Launching the site. 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(); // To handle all new opened window. Set<String> s1=driver.getWindowHandles(); Iterator<String> i1=s1.iterator(); while(i1.hasNext()) { String ChildWindow=i1.next(); if(!MainWindow.equalsIgnoreCase(ChildWindow)) { // Switching to Child window driver.switchTo().window(ChildWindow); driver.findElement(By.name("emailid")) .sendKeys("gaurav.3n@gmail.com"); driver.findElement(By.name("btnLogin")).click(); // Closing the Child Window. driver.close(); } } // Switching to Parent window i.e Main Window. driver.switchTo().window(MainWindow); } }
Keluaran:
Saat Anda menjalankan kode di atas, situs akan diluncurkan dan saat mengklik link "Klik di sini", jendela anak di tab baru akan terbuka. Anda dapat menutup jendela anak, dan beralih ke jendela induk setelah operasi selesai. Oleh karena itu menangani lebih dari satu jendela dalam aplikasi.
Kesimpulan
- Kami mendefinisikan jenis peringatan dan menampilkannya dengan cuplikan layar.
- Ditunjukkan menangani Peringatan dengan Selenium WebDriver menggunakan skenario tertentu.
- Menangani beberapa jendela dengan Selenium WebDriver menggunakan skenario tertentu.