Peringatan Selenium & Penanganan Jendela Popup: Bagaimana Cara Menanganinya?

Daftar Isi:

Anonim

Dalam tutorial ini, kita akan belajar bagaimana menangani popup di Selenium dan berbagai jenis peringatan yang ditemukan dalam Pengujian aplikasi web. Kami juga akan melihat bagaimana menangani Peringatan di Selenium WebDriver dan mempelajari bagaimana kami menerima dan menolak peringatan tergantung pada jenis peringatan.

Dalam tutorial ini, Anda akan belajar-

  • Apa itu Alert?
  • Bagaimana menangani Alert di Selenium WebDriver
  • Cara menangani jendela Popup Selenium menggunakan Webdriver

Apa itu Alert di Selenium?

Sebuah Siaga di Selenium adalah kotak pesan kecil yang muncul di layar untuk memberikan pengguna beberapa informasi atau pemberitahuan. Ini memberi tahu pengguna dengan beberapa informasi atau kesalahan tertentu, meminta izin untuk melakukan tugas tertentu dan juga memberikan pesan peringatan juga.

Berikut adalah beberapa peringatan dalam jenis Selenium:

1) Peringatan Sederhana

Kelas peringatan sederhana di Selenium menampilkan beberapa informasi atau peringatan di layar.

2) Peringatan Segera.

Peringatan Prompt ini meminta beberapa masukan dari pengguna dan driver web Selenium dapat memasukkan teks menggunakan tombol kirim ("input

…. ").

3) Peringatan Konfirmasi.

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 di Selenium Webdriver.

1) void bubar () // Untuk mengklik tombol 'Batal' pada peringatan.

driver.switchTo (). alert (). discharge ();

2) void accept () // Untuk mengklik tombol 'OK' pada notifikasi.

driver.switchTo (). alert (). accept ();

3) String getText () // Untuk menangkap pesan peringatan.

driver.switchTo (). alert (). getText (); 

4) void 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 ini yang disarankan oleh Eclipse.

Kita dapat dengan mudah beralih ke peringatan dari jendela utama dengan menggunakan metode .switchTo () Selenium .

Sekarang kami mengotomatiskan skenario di bawah ini.

Dalam skenario ini, kami akan menggunakan situs demo Guru99 untuk menggambarkan penanganan Selenium Alert.

Langkah 1) Luncurkan browser web dan buka situs "http://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.

Menangani Alert di Selenium Webdriver menggunakan skenario di atas

import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.chrome.ChromeDriver;impor org.openqa.selenium.NoAlertPresentException;impor org.openqa.selenium.Alert;kelas publik AlertDemo {public static void main (String [] args) melempar NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Driver WebDriver = new ChromeDriver ();// Penanganan Pesan Peringatandriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Beralih ke WaspadaAlert alert = driver.switchTo (). Alert ();// Menangkap pesan peringatan.String alertMessage = driver.switchTo (). Alert (). GetText ();// Menampilkan pesan peringatanSystem.out.println (alertMessage);Thread.sleep (5000);// Menerima peringatanalert.accept ();}}

Keluaran:

Ketika Anda menjalankan kode di atas, itu meluncurkan situs. 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 Selenium menggunakan Webdriver

Dalam otomatisasi, saat kita memiliki banyak jendela di aplikasi web mana pun, aktivitas mungkin perlu mengalihkan kontrol di antara beberapa jendela dari satu jendela ke jendela lain untuk menyelesaikan operasi. Setelah operasi selesai, ia harus kembali ke jendela utama yaitu jendela induk di Selenium. Kita akan melihat ini lebih jauh di artikel dengan sebuah contoh.

Di driver web Selenium ada beberapa metode di mana kita dapat menangani banyak jendela.

Driver.getWindowHandles ();

Untuk menangani semua jendela yang dibuka oleh driver web, kita dapat menggunakan "Driver.getWindowHandles ()" dan kemudian kita dapat berpindah jendela dari satu jendela ke jendela lainnya dalam aplikasi web. Jenis kembaliannya adalah Iterator .

Driver.getWindowHandle ();

Saat situs terbuka, kita perlu menangani jendela utama dengan driver.getWindowHandle () . Ini akan menangani jendela saat ini yang secara unik mengidentifikasinya dalam contoh driver ini. Jenis kembaliannya adalah String.

Untuk penanganan Window di Selenium, kami akan mengikuti langkah-langkah di bawah ini:

Sekarang, kita akan mengotomatiskan skenario di bawah ini untuk melihat bagaimana menangani banyak jendela menggunakan Selenium Webdriver.

Dalam skenario ini, kami akan menggunakan situs demo "Guru99" untuk menggambarkan penanganan jendela.

Langkah 1) Luncurkan situs.

Luncurkan browser dan buka situs " http://demo.guru99.com/popup.php "

Langkah 2) Klik link "Klik Di Sini".

Ketika pengguna mengklik link "Klik Di Sini", jendela anak baru terbuka.

Langkah 3) Jendela Anak Baru terbuka.

Jendela baru terbuka, minta pengguna memasukkan id email dan mengirimkan halaman.

Langkah 4) Masukkan ID email Anda dan kirimkan.

Langkah 5) Tampilkan Kredensial Akses saat mengirimkan halaman.

Saat Anda menjalankan kode, Anda akan melihat jendela anak terbuka di tab baru.

  1. Tutup jendela Anak di mana kredensial ditampilkan.
  1. Beralih ke jendela induk.

Menangani beberapa jendela di webdriver Selenium menggunakan skenario di atas.

import java.util.Iterator;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;impor org.openqa.selenium.firefox.FirefoxDriver;kelas publik WindowHandle_Demo {public static void main (String [] args) melempar InterruptedException {Driver WebDriver = FirefoxDriver baru ();// Meluncurkan situs.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maksimalkan ();driver.findElement (By.xpath ("// * [berisi (@ href, 'popup.php')]")). click ();String MainWindow = driver.getWindowHandle ();// Untuk menangani semua jendela baru yang terbuka.Setel  s1 = driver.getWindowHandles ();Iterator  i1 = s1.iterator ();sementara (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Beralih ke jendela Anakdriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Alamat email ini dilindungi dari robot spam. Anda harus mengaktifkan JavaScript untuk melihatnya.");driver.findElement (By.name ("btnLogin")). click ();// Menutup Jendela Anak.driver.close ();}}// Beralih ke jendela Induk yaitu Jendela Utama.driver.switchTo (). window (MainWindow);}}

Keluaran:

Ketika Anda menjalankan kode di atas, itu meluncurkan situs dan mengklik link "Klik di sini," itu membuka jendela anak di tab baru. Anda dapat menutup jendela anak, dan beralih ke jendela induk setelah operasi selesai sepenuhnya. Karenanya menangani lebih dari satu jendela dalam aplikasi.

Penanganan Beberapa Jendela di Selenium

Kesimpulan:

  • Kami menentukan jenis peringatan dan menunjukkannya dengan tangkapan layar.
  • Mendemonstrasikan penanganan Alert dengan Selenium WebDriver menggunakan skenario tertentu.
  • Menangani beberapa jendela dengan Selenium WebDriver menggunakan skenario tertentu.