Як обробляти сповіщення та спливаючі вікна в Selenium?
Що таке оповіщення Selenium?
An Сповіщення в Selenium це невелике вікно повідомлення, яке з’являється на екрані, щоб надати користувачеві певну інформацію чи сповіщення. Він сповіщає користувача про певну інформацію або помилку, запитує дозвіл на виконання певних завдань, а також надає попереджувальні повідомлення.
У цьому посібнику ми навчимося працювати зі спливаючими вікнами Selenium і різні типи сповіщень у веб-програмі Тестування. Ми також побачимо, як обробляти Alert in Selenium WebDriver і дізнайтеся, як приймати та відхиляти сповіщення залежно від типів сповіщень.
Типи сповіщень в Selenium
1) Simple Alert
Простий клас сповіщень у Selenium відображає деяку інформацію або попередження на екрані.
2) Prompt Alert
Цей довідник - Prompt Alert запитує певний вхід від користувача та Selenium webdriver може вводити текст за допомогою sendkeys(" input…. ").
3) Confirmation Alert
Це сповіщення про підтвердження запитує дозвіл на виконання певної операції.
Як працювати з Alert in Selenium веб-драйвер
Інтерфейс сповіщень надає наведені нижче кілька методів, які широко використовуються в Selenium Веб-драйвер.
1) void dismiss() // Щоб натиснути кнопку «Скасувати» сповіщення.
driver.switchTo().alert().dismiss();
2) недійсний accept()// Щоб натиснути кнопку «ОК» сповіщення.
driver.switchTo().alert().accept();
3) Рядок getText() // Перехопити повідомлення попередження.
driver.switchTo().alert().getText();
4) void sendKeys(рядок stringToSend) // Для надсилання деяких даних у вікно сповіщень.
driver.switchTo().alert().sendKeys("Text");
Ви можете побачити кілька методів оповіщення, як показано на екрані нижче, запропонованому Eclipse.
Ми можемо легко переключитися на сповіщення з головного вікна за допомогою SeleniumАвтора .перейти до() метод.
Тепер ми автоматизуємо наведений нижче сценарій.
У цьому сценарії ми використаємо демонстраційний сайт Guru99 для ілюстрації Selenium Обробка сповіщень.
Крок 1) Запустіть веб-браузер і відкрийте сайт https://demo.guru99.com/test/delete_customer.php
Крок 2) Введіть будь-який ідентифікатор клієнта.
Крок 3) Після введення ідентифікатора клієнта натисніть кнопку «Надіслати».
Крок 4) Відхилити/прийняти сповіщення.
Обробка оповіщення в Selenium Веб-драйвер
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();
}
}
вихід:
Коли ви виконуєте наведений вище код, він запускає сайт. Спробуйте видалити ідентифікатор клієнта, обробивши сповіщення про підтвердження, яке відображається на екрані, і тим самим видаливши ідентифікатор клієнта з програми.
Як використовувати спливаюче вікно Selenium Веб-драйвер
В автоматизації, коли ми маємо кілька вікон у будь-якій веб-програмі, для виконання операції може знадобитися перемикати керування між кількома вікнами з одного на інше. Після завершення операції він має повернутися до головного вікна, тобто до батьківського вікна Selenium. Це ми побачимо далі в статті на прикладі.
In Selenium веб-драйвер є методи, за допомогою яких ми можемо працювати з кількома вікнами.
Driver.getWindowHandles();
Щоб обробляти всі відкриті вікна за допомогою веб-драйвера, ми можемо використовувати «Driver.getWindowHandles()», а потім ми можемо перемикати вікна з одного вікна на інше у веб-додатку. Його тип повернення — Iterator .
Driver.getWindowHandle();
Коли сайт відкривається, нам потрібно обробити головне вікно driver.getWindowHandle(). Це обробить поточне вікно, яке унікально ідентифікує його в цьому екземплярі драйвера. Його тип повернення - String.
Для обробки вікон в Selenium, ми виконаємо наведені нижче дії.
Тепер ми автоматизуємо наведений нижче сценарій, щоб побачити, як використовувати кілька вікон Selenium Веб-драйвер.
У цьому сценарії ми використаємо демонстраційний сайт «Guru99», щоб проілюструвати обробку вікон.
Крок 1) Запустіть сайт.
Запустіть браузер і відкрийте сайт https://demo.guru99.com/popup.php
Крок 2) Натисніть на посилання «Натисніть тут».
Коли користувач натискає посилання «Клацніть тут», відкривається нове дочірнє вікно.
Крок 3) Відкриється нове дочірнє вікно.
Відкриється нове вікно, попросіть користувача ввести ідентифікатор електронної пошти та відправити сторінку.
Крок 4) Введіть свій ідентифікатор електронної пошти та надішліть.
Крок 5) Відобразити облікові дані доступу під час надсилання сторінки.
Коли ви виконаєте код, ви побачите, що дочірнє вікно відкрито в новій вкладці.
- Закрийте дочірнє вікно, у якому відображаються облікові дані.
- Перейти до батьківського вікна.
Як працювати з кількома 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);
}
}
вихід:
Коли ви виконуєте наведений вище код, він запускає сайт, а після натискання посилання «Натисніть тут» відкривається дочірнє вікно в новій вкладці. Ви можете закрити дочірнє вікно та перейти до батьківського вікна, коли операцію буде завершено. Отже, обробка кількох вікон у програмі.

Висновок
- Ми визначили типи сповіщень і показали їх на знімку екрана.
- Продемонстровано роботу з оповіщенням Selenium WebDriver використовує певний сценарій.
- Оброблено кілька вікон за допомогою Selenium WebDriver використовує певний сценарій.














