Как обращаться Selenium Оповещения и всплывающие окна?
Что такое оповещение Selenium?
An Оповещение в Selenium это небольшое окно сообщения, которое появляется на экране и предоставляет пользователю некоторую информацию или уведомление. Он уведомляет пользователя о некоторой конкретной информации или ошибке, запрашивает разрешение на выполнение определенных задач, а также предоставляет предупреждающие сообщения.
В этом уроке мы научимся обрабатывать всплывающие окна в Selenium и различные типы оповещений, найденные в веб-приложении Тестирование. Мы также увидим, как обрабатывать Alert в Selenium WebDriver и узнайте, как принять и отклонить оповещение в зависимости от типа оповещения.
Типы оповещений в Selenium
1) Simple Alert
Простой класс оповещения в Selenium отображает некоторую информацию или предупреждение на экране.
2) Prompt Alert
Эти Prompt Alert запрашивает некоторую информацию от пользователя и Selenium веб-драйвер может вводить текст с помощью sendkeys(»input….»).
3) 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Автора .переключить на() метод.
Теперь мы автоматизируем приведенный ниже сценарий.
В этом сценарии мы будем использовать демонстрационный сайт 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();
Когда сайт откроется, нам нужно обработать главное окно с помощью драйвер.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 с использованием определенного сценария.