Як обробляти сповіщення та спливаючі вікна в Selenium?

Що таке оповіщення Selenium?

An Сповіщення в Selenium це невелике вікно повідомлення, яке з’являється на екрані, щоб надати користувачеві певну інформацію чи сповіщення. Він сповіщає користувача про певну інформацію або помилку, запитує дозвіл на виконання певних завдань, а також надає попереджувальні повідомлення.

У цьому посібнику ми навчимося працювати зі спливаючими вікнами Selenium і різні типи сповіщень у веб-програмі Тестування. Ми також побачимо, як обробляти Alert in Selenium WebDriver і дізнайтеся, як приймати та відхиляти сповіщення залежно від типів сповіщень.

Типи сповіщень в Selenium

1) Simple Alert

Простий клас сповіщень у Selenium відображає деяку інформацію або попередження на екрані.

Simple Alert

2) Prompt Alert

Цей довідник - Prompt Alert запитує певний вхід від користувача та Selenium webdriver може вводити текст за допомогою sendkeys(" input…. ").

Prompt Alert

3) Confirmation Alert

Це сповіщення про підтвердження запитує дозвіл на виконання певної операції.

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Автора .перейти до() метод.

Обробляти сповіщення в Selenium веб-драйвер

Тепер ми автоматизуємо наведений нижче сценарій.

У цьому сценарії ми використаємо демонстраційний сайт Guru99 для ілюстрації Selenium Обробка сповіщень.

Крок 1) Запустіть веб-браузер і відкрийте сайт https://demo.guru99.com/test/delete_customer.php

Крок 2) Введіть будь-який ідентифікатор клієнта.

Обробляти сповіщення в Selenium веб-драйвер

Крок 3) Після введення ідентифікатора клієнта натисніть кнопку «Надіслати».

Обробляти сповіщення в Selenium веб-драйвер

Крок 4) Відхилити/прийняти сповіщення.

Обробляти сповіщення в Selenium веб-драйвер

Обробка оповіщення в 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

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

Крок 2) Натисніть на посилання «Натисніть тут».

Коли користувач натискає посилання «Клацніть тут», відкривається нове дочірнє вікно.

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

Крок 3) Відкриється нове дочірнє вікно.

Відкриється нове вікно, попросіть користувача ввести ідентифікатор електронної пошти та відправити сторінку.

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

Крок 4) Введіть свій ідентифікатор електронної пошти та надішліть.

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

Крок 5) Відобразити облікові дані доступу під час надсилання сторінки.

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

Коли ви виконаєте код, ви побачите, що дочірнє вікно відкрито в новій вкладці.

  1. Закрийте дочірнє вікно, у якому відображаються облікові дані.

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

  1. Перейти до батьківського вікна.

Керувати спливаючим вікном за допомогою Selenium Веб-драйвер

Як працювати з кількома 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
Обробка кількох вікон Selenium

Висновок

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