Оповіщення про селен & Обробка спливаючих вікон: як з цим працювати?

Зміст:

Anonim

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

У цьому підручнику ви дізнаєтесь-

  • Що таке оповіщення?
  • Як обробляти сповіщення в Selenium WebDriver
  • Як обробляти спливаюче вікно Selenium за допомогою Webdriver

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

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

Ось декілька попереджень у типах селену:

1) Просте оповіщення

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

2) Оперативне сповіщення.

Це сповіщення про запит вимагає певного введення від користувача, і веб-драйвер Selenium може вводити текст за допомогою клавіш senddi ("введення"

... ").

3) Оповіщення про підтвердження.

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

Як обробляти сповіщення в Selenium WebDriver

Інтерфейс оповіщення надає кілька наведених нижче методів, які широко використовуються в Selenium Webdriver.

1) void dismiss () // Щоб натиснути кнопку "Скасувати" попередження.

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

2) void accept () // Щоб натиснути кнопку "ОК" попередження.

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

3) String getText () // Для захоплення попереджувального повідомлення.

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

4) void sendKeys (String stringToSend) // Щоб надіслати деякі дані у вікно попередження.

driver.switchTo (). alert (). sendKeys ("Текст");

Ви можете бачити, як відображається ряд методів оповіщення, як показано на екрані нижче, запропонованому Eclipse.

Ми можемо легко переключитися на сповіщення з головного вікна, використовуючи метод .switchTo () Selenium .

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

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

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

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

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

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

Обробка сповіщення в Selenium Webdriver, використовуючи описаний вище сценарій

імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.chrome.ChromeDriver;імпорт org.openqa.selenium.NoAlertPresentException;імпорт org.openqa.selenium.Alert;публічний клас AlertDemo {public static void main (String [] args) викидає NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Драйвер WebDriver = новий ChromeDriver ();// Обробка повідомлень попередженняdriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("подати")). submit ();// Перехід на сповіщенняОповіщення попередження = driver.switchTo (). Alert ();// Захоплення попереджувального повідомлення.Рядок alertMessage = driver.switchTo (). Alert (). GetText ();// Відображення попереджувального повідомленняSystem.out.println (alertMessage);Thread.sleep (5000);// Прийом попередженняalert.accept ();}}

Вихід:

Коли ви виконуєте наведений вище код, він запускає сайт. Спробуйте видалити ідентифікатор клієнта, обробивши сповіщення про підтвердження, яке відображається на екрані, і тим самим видалити ідентифікатор клієнта з програми.

Як обробляти спливаюче вікно Selenium за допомогою Webdriver

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

У веб-драйвері Selenium існують методи, за допомогою яких ми можемо обробляти кілька вікон.

Driver.getWindowHandles ();

Для обробки всіх відкритих вікон за допомогою веб-драйвера ми можемо використовувати "Driver.getWindowHandles ()", а потім ми можемо перемикати вікно з одного вікна на інше у веб-програмі. Його тип повернення - Iterator .

Driver.getWindowHandle ();

Коли сайт відкривається, нам потрібно обробити головне вікно за допомогою driver.getWindowHandle () . Це обробляє поточне вікно, яке однозначно ідентифікує його в цьому екземплярі драйвера. Його тип повернення - String.

Що стосується роботи з вікнами в Selenium, ми виконаємо наступні кроки:

Тепер ми автоматизуємо наведений нижче сценарій, щоб побачити, як обробляти кілька вікон за допомогою Selenium Webdriver.

У цьому випадку ми будемо використовувати демонстраційний сайт "Guru99", щоб проілюструвати роботу з вікнами.

Крок 1) Запустіть сайт.

Запустіть браузер і відкрийте сайт " http://demo.guru99.com/popup.php "

Крок 2) Клацніть на посилання "Клацніть тут".

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

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

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

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

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

Після запуску коду ви побачите, що дочірнє вікно відкрито в новій вкладці.

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

Обробка декількох вікон у веб-драйвері Selenium, використовуючи описаний вище сценарій.

імпортувати java.util.Iterator;імпортувати java.util.Set;імпорт org.openqa.selenium.By;імпорт org.openqa.selenium.WebDriver;імпорт org.openqa.selenium.firefox.FirefoxDriver;відкритий клас WindowHandle_Demo {public static void main (String [] args) викидає InterruptedException {Драйвер WebDriver = новий FirefoxDriver ();// Запуск сайту.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maximize ();driver.findElement (By.xpath ("// * [містить (@ href, 'popup.php')]")). click ();Рядок MainWindow = driver.getWindowHandle ();// Обробляти все нове відкрите вікно.Встановити  s1 = driver.getWindowHandles ();Ітератор  i1 = s1.iterator ();while (i1.hasNext ()){Рядок ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Перемикання на дочірнє вікноdriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Ця електронна адреса захищена від спам-ботів. Для її перегляду потрібен увімкнути JavaScript.");driver.findElement (By.name ("btnLogin")). click ();// Закриття вікна дитини.driver.close ();}}// Перехід на батьківське вікно, тобто головне вікно.driver.switchTo (). window (MainWindow);}}

Вихід:

Коли ви виконуєте вищевказаний код, він запускає сайт і після натискання посилання "Клацніть тут" відкриється дочірнє вікно на новій вкладці. Ви можете закрити дочірнє вікно та перейти до батьківського вікна, як тільки операція буде повністю виконана. Отже, обробка декількох вікон у програмі.

Обробка декількох вікон у селені

Висновок:

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