how handle alerts popups selenium webdriver selenium tutorial 16
Ефективні способи обробки Windows та веб-сповіщень / спливаючих вікон у Selenium WebDriver:
хороший безкоштовний брандмауер для Windows 10
У попередньому підручнику ми зосередили нашу дискусію на різні типи очікування, що надаються WebDriver . Ми також обговорили різні типи навігаційних опцій, доступних у WebDriver.
Рух вперед у Підручники з селену WebDriver , ми обговоримо про різні типи попереджень, доступні під час тестування веб-додатків та стратегій їх обробки.
Є два типи оповіщень, на яких ми б зосередилися головним чином :
- Спливаючі вікна сповіщень на базі Windows
- Спливаючі вікна веб-сповіщень
Оскільки ми знаємо, що обробляти спливаючі вікна на базі вікон виходить за рамки можливостей WebDriver, тому ми використовуємо деякі сторонні утиліти для обробки спливаючих вікон.
Обробка спливаючих вікон - одна з найскладніших завдань для автоматизації під час тестування веб-додатків. Завдяки різноманітності типів спливаючих вікон ситуація ще більше ускладнює ситуацію.
Що таке вікно сповіщення / спливаюче вікно / вікно підтвердження / запит / вікно автентифікації?
На екрані дисплея з’являється лише маленька рамка, яка дає вам якусь інформацію або попереджає про потенційно шкідливу операцію, або навіть може попросити дозволу на операцію.
Приклад: Давайте розглянемо приклад із реального життя для кращого розуміння; Припустимо, що ми завантажили фотографію на будь-який із цих популярних сайтів соціальних мереж. Пізніше я хочу видалити завантажену фотографію. Тож для того, щоб видалити, я натиснув на кнопку видалення. Як тільки я натискаю на кнопку видалення, система застерігає мене від моїх дій, підказуючи - Ви дійсно хочете видалити файл? Тож тепер у нас є можливість або прийняти це сповіщення, або відхилити його.
Отже, перед сесією, давайте подивимося, як ми відхиляємо або приймаємо сповіщення залежно від їх типів. Починаючи з веб-спливаючих вікон.
Що ви дізнаєтесь:
Інтернет-спливаючі вікна
Давайте подивимося, як ми обробляємо їх за допомогою WebDriver.
Обробка спливаючих вікон через Інтернет
WebDriver пропонує користувачам дуже ефективний спосіб обробки цих спливаючих вікон за допомогою інтерфейсу попередження.
Є чотири методи, які ми використовували б разом із інтерфейсом сповіщення.
1) недійсне звільнення () - Метод dismiss () натискає кнопку «Скасувати», як тільки з’являється спливаюче вікно.
два) void accept () - Метод accept () натискає кнопку “Ok”, як тільки з’являється спливаюче вікно.
3) Рядок getText () - Метод getText () повертає текст, що відображається у вікні попередження.
4) void sendKeys (рядок stringToSend) - Метод sendKeys () вводить вказаний рядок у вікно попередження.
Давайте рухатимемось далі і подивимось на фактичне впровадження.
Пояснення заявки під тестом
Ми розробили веб-сторінку таким чином, щоб включити кілька основних типів веб-елементів. Це той самий додаток, який ми ввели під час обговорення класу Select раніше в цій серії.
- Гіперпосилання : Дві гіперпосилання, а саме 'Google' та 'abodeQA', надають користувача, який перенаправляє користувача на 'http://www.google.com/' та 'http://www.abodeqa.com/' відповідно на натисніть подію.
- Випадаюче меню : Три гіперпосилання створено для вибору кольорів, фруктів та тварин із значенням, встановленим за замовчуванням.
- Кнопка : Була створена кнопка 'спробувати', щоб відобразити спливаюче вікно, що має кнопки ОК та Скасувати при натисканні.
(Клацніть на зображення, щоб переглянути збільшене)
Далі йде HTML-код, який використовується для створення згаданої веб-сторінки:
Тестування Виберіть класЧервоний Зелений Жовтий Сірий | Яблуко апельсиновий манго Лайм | Виберіть Собака-слон-миша |
Натисніть кнопку, щоб відобразити поле підтвердження. Спробуйте функцію myFunction () {підтвердження ('Натисніть кнопку!'); } |
Сценарій для автоматизації
- Запустіть веб-браузер і відкрийте веб-сторінку
- Натисніть кнопку «Спробувати»
- Прийміть попередження
- Натисніть кнопку «Спробувати» ще раз
- Відхилити попередження
Код WebDriver за допомогою класу Select
Зверніть увагу, що для створення скриптів ми використовуємо проект “Learning_Selenium”, створений у попередньому навчальному посібнику.
Крок 1 : Створіть новий клас Java із назвою „DemoWebAlert” у рамках проекту „Learning_Selenium”.
Крок 2 : Скопіюйте та вставте наведений нижче код у класі “DemoWebAlert.java”.
Нижче наведено тестовий скрипт, еквівалентний вищезазначеному сценарію.
import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; /** * class description */ public class DemoWebAlert { WebDriver driver; /** * Constructor */ public DemoWebAlert() { } /** * Set up browser settings and open the application */ @Before public void setUp() { driver=new FirefoxDriver(); // Opened the application driver.get('file:///F:/Work/Selenium/Testing-Presentation/DemoWebPopup.htm'); driver.manage().window().maximize(); } /** * Test to check Select functionality * @throws InterruptedException */ @Test public void testWebAlert() throws InterruptedException { // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert Alert alert = driver.switchTo().alert(); alert.accept(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert driver.switchTo().alert().dismiss(); // clicking on try it button driver.findElement(By.xpath('//button(contains(text(),'Try it'))')).click(); Thread.sleep(5000); // accepting javascript alert System.out.println(driver.switchTo().alert().getText()); driver.switchTo().alert().accept(); } /** * Tear down the setup after test completes */ @After public void tearDown() { driver.quit(); } }
Прохідний код
Імпортні заяви
Імпорт org.openqa.selenium.Alert - Імпортуйте цей пакет до створення сценарію Пакет посилається на клас Alert, який необхідний для обробки веб-попереджень у WebDriver.
Створення об’єкта для класу оповіщення
Оповіщення попередження = driver.switchTo (). Alert ();
Ми створюємо посилальну змінну для класу попередження та посилаємо її на попередження.
подвійно пов'язані списки c ++
Переключіться на Сповіщення
Driver.switchTo (). Alert ();
Вищевказана команда використовується для перемикання елемента керування на нещодавно створене спливаюче вікно.
Прийміть сповіщення
alert.accept ();
Вищевказана команда приймає попередження, натискаючи на кнопку Ok.
Відхилити сповіщення
alert.dismiss ();
Вищевказана команда закриває попередження, натискаючи на кнопку Скасувати, а отже, операція не повинна продовжуватися.
Спливаючі вікна на основі вікон
Часом під час автоматизації ми отримуємо кілька сценаріїв, коли нам потрібно обробляти спливаючі вікна, генеровані вікнами, як спливаюче вікно друку або вікно перегляду під час завантаження файлу.
Також читайте = >> Як обробляти завантаження файлів у Selenium
Обробка цих спливаючих вікон завжди була трохи складною, оскільки ми знаємо, що Selenium - це інструмент автоматизації тестування, який підтримує лише тестування веб-додатків, це означає, що він не підтримує додатки на базі Windows, і вікно попередження є одним з них. Однак сам по собі селен не може допомогти ситуації, але поряд із втручанням третьої сторони цю проблему можна подолати.
Існує кілька сторонніх інструментів для обробки спливаючих вікон на основі вікон разом із селеном.
основні запитання для інтерв’ю Java для тестувачів селену
Отже, давайте розглянемо спливаюче вікно за допомогою класу Robot.
Робот-клас - це утиліта на основі Java, яка імітує дії клавіатури та миші.
Перш ніж рухатися вперед, давайте хвилинку, щоб поглянути на тестоване застосування (AUT).
Пояснення заявки під тестом
Як тестоване додаток ми використовували б “gmail.com”. Я вважаю, що додаток більше не потребує вступу.
Сценарій для автоматизації
- Запустіть веб-браузер і відкрийте програму - “gmail.com”
- Введіть дійсне ім’я користувача та пароль
- Клацніть на кнопку входу
- Клацніть на кнопку створення повідомлення
- Клацніть на піктограму вкладення
- Виберіть файли для завантаження за допомогою спливаючого вікна.
Код WebDriver за допомогою класу робота
Зверніть увагу, що для створення скриптів ми використовуємо проект “Learning_Selenium”, створений у попередньому навчальному посібнику.
Крок 1 : Створіть новий клас Java із назвою „DemoWindowAlert” у рамках проекту „Learning_Selenium”.
Крок 2 : Скопіюйте та вставте наведений нижче код у класі “DemoWindowAlert.java”.
Нижче наведено тестовий скрипт, еквівалентний вищезазначеному сценарію.
import java.awt.Robot;
імпортувати java.awt.event.KeyEvent; імпорт org.junit.After; імпорт org.junit.Before; імпорт org.junit.Test; імпорт org.openqa.selenium.By; імпорт org.openqa.selenium.WebDriver; імпорт org.openqa.selenium.firefox.FirefoxDriver; публічний клас DemoWindowAlert {драйвер WebDriver; @Before public void setUp () {драйвер = новий FirefoxDriver (); driver.get ('https://gmail.com'); driver.manage (). window (). maximize (); } @Test public void testWindowAlert () викидає виняток {// введіть дійсну адресу електронної пошти driver.findElement (By.id ('Email')). SendKeys ('TestSelenium1607@gmail.com '); // вводимо дійсний драйвер пароля.findElement (By.id ('Passwd')). sendKeys ('TestSelenium'); // клацніть на кнопку входу driver.findElement (By.id ('signIn')). click (); Нитка.спання (30000); // клацніть на кнопку складання драйвер.findElement (By.xpath ('// div (@ class =' z0 ') // div (містить (text (),' COMPOSE '))'))). click (); // клацніть на піктограму вкладених файлів driver.findElement (By.xpath ('// div (містить (@ команда,' Файли ')) // div (містить (@ клас,' aaA '))')). натисніть ( ); // створення екземпляра класу Robot (утиліта на основі Java) Robot rb = new Robot (); // натискання клавіш за допомогою keyPress та keyRelease подій rb.keyPress (KeyEvent.VK_D); rb.keyRelease (KeyEvent.VK_D); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SEMICOLON); rb.keyRelease (KeyEvent.VK_SHIFT); rb.keyPress (KeyEvent.VK_BACK_SLASH); rb.keyRelease (KeyEvent.VK_BACK_SLASH); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_P); rb.keyRelease (KeyEvent.VK_P); rb.keyPress (KeyEvent.VK_I); rb.keyRelease (KeyEvent.VK_I); rb.keyPress (KeyEvent.VK_C); rb.keyRelease (KeyEvent.VK_C); Thread.sleep (2000); rb.keyPress (KeyEvent.VK_ENTER); rb.keyRelease (KeyEvent.VK_ENTER); Thread.sleep (2000); } @After public void tearDown () {driver.quit (); }} Прохідний код
Імпортні заяви
імпортувати java.awt.Robot - Імпортуйте цей пакет до створення сценарію Пакет посилається на клас Робот у Java, який необхідний для імітації подій клавіатури та миші.
імпортувати java.awt.event.KeyEvent - Пакет дозволяє користувачеві використовувати події клавіатури KeyPress і keyRelease.
Створення об’єкта для класу Robot
Робот rb = новий Робот ();
Ми створюємо посилальну змінну для класу Robot і створюємо її в якості екземпляра.
Події KeyPress та KeyRelease
rb.keyPress (KeyEvent.VK_D);
rb.keyRelease (KeyEvent.VK_D);
Методи keyPress і keyRelease імітують натискання та відпускання певної клавіші на клавіатурі відповідно.
Висновок
У цьому підручнику ми спробували ознайомити вас із класом сповіщення WebDriver, який використовується для обробки спливаючих вікон на веб-сторінці. Ми також проінформували вас про клас Robot, за допомогою якого можна заповнити значення у вікні на основі сповіщень за допомогою подій keyPress та keyRelease.
Короткий зміст статті:
- Сповіщення - це невеликий віконце, яке з’являється на екрані дисплея, щоб надати вам якусь інформацію або попередити вас про потенційно шкідливу операцію, або навіть може запитати у вас дозволу на операцію.
- Популярно існує два типи попереджень -
- Спливаючі вікна сповіщень на основі Windows
- Спливаючі вікна веб-оповіщення
- До власне сценаріїв нам потрібно імпортувати пакет, щоб мати можливість створити сценарій WebDriver для обробки випадаючого списку та надання класу Select доступним.
- WebDriver пропонує користувачам дуже ефективний спосіб обробки цих спливаючих вікон за допомогою інтерфейсу попередження.
- недійсне звільнення () - The звільнити () метод натискає кнопку «Скасувати», як тільки з’являється спливаюче вікно.
- void accept () - The прийняти () метод натискає кнопку “Ok”, як тільки з’являється спливаюче вікно.
- Рядок getText () - The getText () метод повертає текст, що відображається у вікні попередження.
- void sendKeys (рядок stringToSend) - The sendKeys () метод вводить вказаний рядок у вікно попередження.
- Обробка спливаючих вікон на основі вікон завжди було трохи хитро, оскільки ми знаємо, що Selenium - це засіб тестування автоматизації, який підтримує лише тестування веб-додатків, це означає, що він не підтримує додатки на основі Windows, і вікно попередження є одним із них.
- Клас роботів це утиліта на основі Java, яка імітує дії клавіатури та миші та може бути ефективно використана для обробки спливаючих вікон за допомогою клавіатурних подій.
- Методи keyPress і keyRelease імітують натискання та відпускання певної клавіші на клавіатурі відповідно.
Наступний підручник No17 : У наступному підручнику ми обговоримо інші загальновживані команди WebDriver . Ми б пролили світло на такі теми, як обробка винятків та обробка iframe. Ми також обговоримо команди отримання, надані в WebDriver.
Ми б пояснили ці теми на швидких прикладах, щоб зробити їх зрозумілими для читачів, які застосовують ці поняття у своїх повсякденних сценаріях.
Примітка для читачів : До цього часу стежте за оновленнями та автоматизуйте веб-сторінки, що мають веб-та віконні спливаючі вікна, використовуючи утиліту WebDriver - «Клас попередження» та утиліту Java - «Клас робота».
Не соромтеся розміщувати свої запити / коментарі щодо цього чи будь-якого іншого попереднього підручника в коментарях нижче.
Рекомендована література
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Вступ до Selenium WebDriver - Підручник з селену №8
- Впровадження нашого першого сценарію WebDriver - Підручник № 10 для Selenium WebDriver
- Повне налаштування та встановлення WebDriver за допомогою Eclipse - Підручник селену № 9
- Перевірте видимість веб-елементів, використовуючи різні типи команд WebDriver - Підручник з селену №14
- Підручник з селену GeckoDriver: Як використовувати GeckoDriver у проектах селену
- Інтеграція Дженкінса з Selenium WebDriver: покроковий посібник
- Ефективні сценарії сценаріїв та усунення несправностей селену - Підручник селену No27