Как обращаться Selenium Оповещения и всплывающие окна?

Что такое оповещение Selenium?

An Оповещение в Selenium это небольшое окно сообщения, которое появляется на экране и предоставляет пользователю некоторую информацию или уведомление. Он уведомляет пользователя о некоторой конкретной информации или ошибке, запрашивает разрешение на выполнение определенных задач, а также предоставляет предупреждающие сообщения.

В этом уроке мы научимся обрабатывать всплывающие окна в Selenium и различные типы оповещений, найденные в веб-приложении Тестирование. Мы также увидим, как обрабатывать Alert в Selenium WebDriver и узнайте, как принять и отклонить оповещение в зависимости от типа оповещения.

Типы оповещений в Selenium

1) Simple Alert

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

Simple Alert

2) Prompt Alert

Эти Prompt Alert запрашивает некоторую информацию от пользователя и Selenium веб-драйвер может вводить текст с помощью sendkeys(»input….»).

Prompt Alert

3) Confirmation Alert

В этом подтверждении запрашивается разрешение на выполнение определенного типа операции.

Confirmation Alert

Как обрабатывать оповещения в Selenium Вебдрайвер

Интерфейс оповещений предоставляет следующие несколько методов, которые широко используются в Selenium Вебдрайвер.

1) аннулирование увольнения() // Чтобы нажать кнопку «Отменить» оповещения.

driver.switchTo().alert().dismiss();

2) недействительный акцепт()// Чтобы нажать кнопку «ОК» предупреждения.

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

3) Строка getText() // Для захвата предупреждающего сообщения.

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

4) void sendKeys (String 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();

Когда сайт откроется, нам нужно обработать главное окно с помощью драйвер.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 с использованием определенного сценария.