Розширення основного селену (User-Extensions.js)

Зміст:

Anonim

Щоб зрозуміти розширення, давайте спочатку зрозуміємо три опори селену IDE

  1. Дія: яку операцію ви виконуєте на екрані інтерфейсу користувача

  2. Оцінювачі / твердження: Яку перевірку ви робите для даних, які ви отримуєте з інтерфейсу користувача

  1. Стратегія локатора: Як ми можемо знайти елемент в інтерфейсі користувача.

Зараз Selenium IDE має дуже зрілу бібліотеку з безліччю дій, тверджень / оцінювачів та стратегій пошуку.

Але іноді нам потрібно додати до нього ще кілька функціональних можливостей відповідно до вимог нашого проекту. У такій ситуації ми можемо розширити цю бібліотеку, додавши власні розширення. Ці спеціальні розширення називаються "Розширення користувача".

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

Вимога для створення розширення користувача Selenium:

Щоб створити розширення користувача для Selenium IDE, нам потрібно знати основну концепцію концепції об’єкта JavaScript та Java Script.

Щоб створити своє розширення користувача, вам потрібно створити методи сценарію Java та додати їх до прототипу об’єкта селен та прототипу об’єкта PageBot.

Як Selenium IDE розпізнає розширення користувача?

Після додавання розширення користувача до Selenium IDE, коли ми запускаємо Selenium IDE, усі ці розширення в прототипі javascript завантажуються, і Selenium IDE розпізнає їх за назвою.

Як створити розширення користувача

Крок 1) Дія - всі дії починаються з "do", тобто якщо дія стосується тексту верхнього регістру, ніж її назва буде doTextUpperCase. Коли ми додаємо цей метод дії в Selenium IDE, Selenium IDE сам створить метод очікування для цієї дії. Отже, у цьому випадку, коли ми створюємо дію doTextUpperCase , Selenium IDE створить відповідну функцію очікування як TextUpperCaseAndWait . Він може приймати два параметри

Приклад: Дія з текстом верхнього регістру

Selenium.prototype.doTextUpperCase = функція (локатор, текст) {// Тут findElement сам здатний обробляти всі типи локатора (xpath, css, name, id, className), нам просто потрібно передати текст локатораелемент var = this.page (). findElement (локатор);// Створення тексту для друкуtext = text.toUpperCase ();// Замініть текст елемента новим текстомthis.page (). replaceText (елемент, текст);};

Крок 2) Оцінювачі / твердження - Усі оцінювачі, зареєстровані в прототипі об'єкту селену, будуть мати префікс

"get" або "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Він може приймати два параметри, один для цілі та інший для поля значення в тестовому випадку.

Для кожного оцінювача будуть відповідні функції перевірки з префіксом "verify", "assert", а префікс функції wait - "waitFor"

Приклад: для оцінювачів тексту верхнього регістру

Selenium.prototype.assertTextUpperCase = функція (локатор, текст) {// Усі стратегії локатора автоматично обробляються "findElement"елемент var = this.page (). findElement (локатор);// Створення тексту для перевіркиtext = text.toUpperCase ();// Отримати фактичне значення елементаvar actualValue = element.value;// Переконайтесь, що фактичне значення відповідає очікуваномуAssert.matches (очікуване значення, фактичне значення);};Selenium.prototype.isTextEqual = функція (локатор, текст) {повернути this.getText (локатор) .value === текст;};Selenium.prototype.getTextValue = функція (локатор, текст) {повернути this.getText (локатор) .value;};

Крок 3) Стратегія локатора - якщо ми хочемо створити власну функцію для пошуку елемента, тоді

нам потрібно розширити прототип PageBot за допомогою функції з префіксом "locateElementBy."

Це займе два параметри, перший буде рядком локатора, а другий буде документом

де його потрібно шукати.

Приклад: для верхнього регістру пошуку тексту

// "inDocument" - це документ, який ви шукаєте.PageBot.prototype.locateElementByUpperCase = функція (текст, inDocument) {// Створення тексту для пошукуvar очікувана значення = text.toUpperCase ();// Прокрутіть усі елементи, шукаючи ті, які є// значення === наше очікуване значенняvar allElements = inDocument.getElementsByTagName ("*");// Ця зірка '*' - це свого роду регулярний вираз, який буде проходити через кожен елемент (у HTML DOM кожен елемент напевно має ім'я тегу, як , ,

, , ,
тощо). Тут наш мотив - знайти елемент, який відповідає тексту верхнього регістру, який ми передали, тому ми будемо шукати його з усіма елементами, і коли ми отримаємо збіг, у нас буде правильний веб-елемент.for (var i = 0; i

Як користуватися новоствореним основним розширенням?

  1. Перейдіть до селену IDE

    Клацніть на Параметри -> Параметри ...

  1. У розділі Загальні виберіть розташування нещодавно створеного розширення Core Selenium

  2. Натисніть OK і перезапустіть Selenium IDE

  1. Ви знайдете розширення у списку команд

Ось список популярних розширень / плагінів, що використовуються в IDE ID

Ім'я Призначення
Вибране Щоб позначити тестовий пакет як улюблений і виконати їх одним клацанням миші
Flex Pilot X Для автоматизації на основі Flex
FlexMonkium Для тестування записів та відтворення на основі Adobe Flex у середовищі IDE Selenium
Протоколювання файлів Для збереження журналів у файлі
Управління потоком Для управління потоком виконання тесту
Виділити елементи Щоб виділити веб-елемент керування
Неявне очікування Чекати елемента протягом певного часу
Знімок екрана при відмові Зробіть знімок екрана в разі відмови
Результати тесту Збережіть результат тесту для тестового набору в один клік

Ви можете отримати їх все та багато іншого у розділі завантаження офіційного сайту SeleniumHQ

http://docs.seleniumhq.org/download/

Короткий зміст:

  • Існує три частини Selenium IDE, Action, Assessors / Assertion, Locator.
  • Розширення користувача створюється, коли Selenium IDE не відповідає поточним вимогам.
  • Для створення розширення користувача потрібно додати javascript до прототипу об'єкта селену.
  • Після створення розширення потрібно додати його в Selenium IDE і перезапустити IDE.

Завантажте розширення Core Selenium Core, яке використовується в цьому посібнику