efficient selenium scripting
У попередньому підручнику ми обговорювали технічні наслідки при реалізації журналювання у фреймворці . Ми обговорювали утиліта log4j в довжину. Ми обговорили основні компоненти, які складають log4j, з точки зору юзабіліті. За допомогою додатків та макетів користувач може вибрати бажаний формат / шаблон журналу та джерело / розташування даних.
У поточному 27-му підручнику з цього всеохоплююча безкоштовна селена онлайн-серій , ми перенесли б свою увагу на кілька тривіальних ще важливі теми це допоможе нам вирішити деякі періодичні проблеми. Ми можемо або не використовувати їх у щоденних сценаріях, але вони були б корисними в довгостроковій перспективі.
Ми б обговорити деякі попередні концепції, в яких ми мали б справу з подіями миші та клавіатури, отримуючи доступ до декількох посилань, реалізуючи списки . Тож чому б не просто розпочати та коротко обговорити ці теми за допомогою відповідних сценаріїв та фрагментів коду.
як відкрити SWF-файли за допомогою Adobe Flash Player - -
Що ви дізнаєтесь:
- Виконавці JavaScript
- Доступ до декількох елементів у списку
- Обробка подій на клавіатурі та миші
- Висновок
- Рекомендована література
Виконавці JavaScript
При автоматизації тестового сценарію існують певні дії, які стають невід’ємною частиною тестових сценаріїв.
Ці дії можуть бути:
- Натискання кнопки, гіперпосилання тощо.
- Введення тексту у текстове поле
- Прокручуйте вертикально або горизонтально, доки потрібний об’єкт не з’явиться
- І багато іншого
З попередніх підручників видно, що найкращий спосіб автоматизувати такі дії - це використання команд Selenium.
Але що, якщо команди селену не працюють?
Так, абсолютно можливо, що самі базові та елементарні команди селену не працюють у певних ситуаціях.
Тим не менш, щоб мати можливість усунути таку ситуацію, ми беремо на себе виконавців JavaScript.
Що таке виконавці JavaScript?
Інтерфейс JavascriptExecutor є частиною org.openqa.selenium і реалізує клас java.lang.Object. JavascriptExecutor представляє можливості для виконання JavaScript безпосередньо у веб-браузері. Для можливості виконання JavaScript в його реалізації передбачені певні механізми у вигляді методів разом із певним набором параметрів.
Методи
executeScript (скрипт рядка, аргументи)
Як випливає з назви методу, він виконує JavaScript у поточному вікні, попередженні, кадрі тощо (вікно, на яке в даний час фокусується екземпляр WebDriver)
executeAsyncScript (рядковий сценарій, аргументи)
Як випливає з назви методу, він виконує JavaScript у поточному вікні, попередженні, кадрі тощо (вікно, на яке в даний час фокусується екземпляр WebDriver)
Параметри та оператор імпорту є загальними для обох методів-виконавців.
Параметри
Сценарій - сценарій для виконання
Аргумент - параметри, необхідні сценарію для його виконання (якщо такі є)
Імпортна заява
Щоб мати можливість використовувати JavascriptExecutors у наших тестових скриптах, нам потрібно імпортувати пакет, використовуючи такий синтаксис:
імпорт org.openqa.selenium.JavascriptExecutor;
Зразок коду
# 1) Клацання веб-елемента
// Locating the web element using id WebElement element = driver.findElement(By.id('id of the webelement')); // Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Clicking the web element js.executeScript('arguments(0).click();', element);
# 2) Набір тексту у текстовому полі
// Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Typing the test data into Textbox js.executeScript('document.getElementById(‘id of the element’).value=’test data’;”);
# 3) Прокрутка вниз, поки веб-елемент не буде у поданні
WebElement element=driver.findElement(By.xpath('//input(contains(@value,'Save'))')); // Instantiating the javascriptExecutor and scrolling into the view in the single test step ((JavascriptExecutor)driver).executeScript('arguments(0).scrollIntoView(true);',element);
Ви можете знайти різні інші способи написання коду для доступу до виконавців JavascriptExecutors.
Доступ до декількох елементів у списку
Часом ми можемо зустріти елементи одного типу, такі як кілька гіперпосилань, зображень тощо, розташованих у впорядкованому чи невпорядкованому списку. Таким чином, має абсолютно сенс мати справу з такими елементами за допомогою одного шматка коду, і це можна зробити за допомогою WebElement List. Зверніться до скріншоту нижче, щоб зрозуміти елементи, про які я говорю.
На зображенні вище ми бачимо, що різні постачальники послуг належать до невпорядкованого списку. Таким чином, перевірка клікабельності та видимості цих елементів може здійснюватися одним шматком коду за допомогою списку елементів.
Імпортна заява
Щоб мати можливість використовувати список WebElement у наших тестових скриптах, нам потрібно імпортувати пакет, використовуючи такий синтаксис:
імпортувати java.util.List;
різниця між sql і sql сервером
Зразок коду
// Storing the list List serviceProviderLinks = driver.findElements(By.xpath('//div(@id='ServiceProvider')//ul//li')); // Fetching the size of the list int listSize = serviceProviderLinks.size(); for (int i=0; iІснують різні вимоги, за якими списки можна використовувати для перевірки елементів із відповідними змінами реалізації.
Обробка подій на клавіатурі та миші
Обробка клавіатурних подій
Як також було сказано раніше, існує n кількох способів вирішити одну і ту ж постановку проблеми в різних контекстах.
Таким чином, часом виникає необхідність вирішити проблему, змінивши звичайну стратегію ведення бізнесу на більш досконалу стратегію. Я був свідком випадків, коли я не міг мати справу з попередженнями та спливаючими і т. Д. За допомогою команд селену, тому мені доводилося вибирати різні утиліти Java, щоб справлятися з ними за допомогою обведення клавіатури та подій миші.
Клас робота - це одна з таких опцій для виконання подій клавіатури та подій миші.
Давайте розберемося в концепції за допомогою сценарію та його реалізації.
Сценарій:
Зберемо ситуацію, коли на екрані з’являється непотрібне спливаюче вікно, яке не можна прийняти або відхилити за допомогою інтерфейсу сповіщення, таким чином, єдиний розумний варіант, який нам залишається, - це закрити вікно за допомогою клавіш швидкого доступу - “Alt + пробіл + C” . Давайте подивимося, як ми закриваємо спливаюче вікно за допомогою Robot Class.
Перш ніж починати впровадження, нам слід імпортувати необхідний пакет, щоб мати можливість використовувати клас Robot у нашому тестовому сценарії.
Заява про імпорт
імпортувати java.awt.Robot;
Зразок коду
// Instantiating Robot class Robot rb =new Robot(); // Calling KeyPress event rb.keyPress(KeyEvent.VK_ALT); rb.keyPress(KeyEvent.VK_SPACE); rb.keyPress(KeyEvent.VK_C); // Calling KeyRelease event rb.keyRelease(KeyEvent.VK_C); rb.keyRelease(KeyEvent.VK_SPACE); rb.keyRelease(KeyEvent.VK_ALT);
Клас робота також може бути використаний для обробки подій миші, але давайте розглянемо тут можливості селену для обробки подій миші.
Обробка подій миші
WebDriver пропонує широкий спектр утиліт взаємодії, які користувач може використовувати для автоматизації подій миші та клавіатури. Action Interface - це одна з таких утиліт, яка імітує взаємодію одного користувача.
Таким чином, ми стали свідками того, як Action Interface наводить курсор миші на спадне меню, яке потім відкриває список параметрів у наступному сценарії.
Сценарій:
- Наведіть курсор миші на спадне меню
- Клацніть на один із пунктів у списку
Заява про імпорт
імпорт org.openqa.selenium.interactions.Actions;
Зразок коду
c програмування запитань та відповідей на інтерв’ю з поясненнями pdf
// Instantiating Action Interface Actions actions= new Actions(driver); // howering on the dropdown actions.moveToElement(driver.findElement(By. id ('id of the dropdown'))).perform(); // Clicking on one of the items in the list options WebElement subLinkOption=driver.findElement(By.id('id of the sub link')); subLinkOption.click();
Висновок
У цьому підручнику ми обговорили деякі розширені теми, пов'язані з ефективним сценарієм та усуненням несправностей, коли користувач повинен обробляти події миші та клавіатури. Ми також обговорили, як зберігати більше одного веб-елемента у списку. Сподіваюся, ви зможете усунути ці перешкоди у разі виникнення.
Наступний підручник No28 : Для майбутнього підручника з серії ми обговоримо концепція тестування баз даних за допомогою Selenium WebDriver . Ми були б свідками механізму підключення до бази даних, потрапляння запитів селену та отримання результатів за допомогою коду Selenium WebDriver.
Рекомендована література
- Вступ до Selenium WebDriver - Підручник з селену №8
- Налагодження сценаріїв селену за допомогою журналів (Підручник Log4j) - Підручник селену No26
- 30+ найкращих підручників із селену: вивчіть селен на реальних прикладах
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Як знайти елементи в браузерах Chrome та IE для побудови сценаріїв селену - Підручник з селену No7
- Впровадження нашого першого сценарію WebDriver - Підручник № 10 для Selenium WebDriver
- Повне налаштування та встановлення WebDriver за допомогою Eclipse - Підручник селену № 9
- Створення дженериків та тестів - Підручник з селену №22