Selenium Основні розширення (User-Extensions.js)

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

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

    Selenium Основні розширення

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

Selenium Основні розширення

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

Selenium Основні розширення

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

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

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

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

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

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

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

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

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

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

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

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

Selenium.prototype.doTextUpperCase = function(locator, text) {
     // Here findElement is itself capable to handle all type of locator(xpath,css,name,id,className), We just need to pass the locator text
     var element = this.page().findElement(locator);
      
     // Create the text to type
     text = text.toUpperCase();
      
     // Replace the element text with the new text
     this.page().replaceText(element, text);
    };

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

через «отримати» або «є» Наприклад. getValueFromCompoundTable, isValueFromCompoundTable. Він може приймати два параметри, один для цільового поля, а інший для поля значення в тестовому випадку.

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

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

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

Selenium.prototype.assertTextUpperCase = function(locator, text) {
     // All locator-strategies are automatically handled by "findElement"
     var element = this.page().findElement(locator);
      
     // Create the text to verify
     text = text.toUpperCase();
      
     // Get the actual element value
     var actualValue = element.value;
    
     // Make sure the actual value matches the expected
     Assert.matches(expectedValue, actualValue);
    };
    
    Selenium.prototype.isTextEqual = function(locator, text) {
     return this.getText(locator).value===text;
    };
    
    Selenium.prototype.getTextValue = function(locator, text) {
     return this.getText(locator).value;
    };

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

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

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

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

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

// The "inDocument" is a document you are searching.
    PageBot.prototype.locateElementByUpperCase = function(text, inDocument) {
     // Create the text to search for
     var expectedValue = text.toUpperCase();
      
     // Loop through all elements, looking for ones that have
     // a value === our expected value
     var allElements = inDocument.getElementsByTagName("*");
// This star '*' is a kind of regular expression it will go through every element (in HTML DOM every element surely have a tag name like<body>,<a>,<h1>,<table>,<tr>,<td> etc. ). Here our motive is to find an element which matched with the Upper Case text we have passed so we will search it with all elements and when we get match we will have the correct web element.
     for (var i = 0; i < allElements.length; i++) {
     var testElement = allElements[i];
     if (testElement.innerHTML && testElement.innerHTML === expectedValue) {
     return testElement;
     }
     }
     return null;
    };

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

  1. Перейдіть до Selenium IDE

    Натисніть Параметри -> Параметри…

Використовуйте нещодавно створене розширення Core

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

    Використовуйте нещодавно створене розширення Core

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

Використовуйте нещодавно створене розширення Core

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

Використовуйте нещодавно створене розширення Core

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

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

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

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

Підсумки

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

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