Selenium Основні розширення (User-Extensions.js)
Щоб зрозуміти розширення, давайте спочатку зрозуміємо три стовпи selenium IDE
- Дія: яку операцію ви виконуєте на екрані інтерфейсу користувача
- Оцінювачі/твердження: яку перевірку даних ви отримуєте з інтерфейсу користувача
- Стратегія пошуку: як ми можемо знайти елемент в інтерфейсі користувача.
тепер, Selenium IDE має дуже зрілу бібліотеку з великою кількістю дій, твердження/оцінювачів і стратегій пошуку.
Але іноді нам потрібно додати до нього додаткові функції для вимог нашого проекту. У такій ситуації ми можемо розширити цю бібліотеку, додавши власні розширення. Ці спеціальні розширення називаються «Розширення користувача».
Наприклад, нам потрібна дія, яка може перетворити текст у верхній регістр перед заповненням його у веб-елементі. Ви не можете знайти цю дію в стандартній бібліотеці дій. У такому випадку ви можете створити власне «Розширення користувача». У цьому посібнику ми дізнаємося, як створити розширення користувача для перетворення тексту у верхній регістр
Вимога до створення Selenium розширення користувача
Щоб створити розширення користувача для Selenium IDE, нам потрібно знати основну концепцію JavaScript та Java Концепція об'єкта прототипу сценарію.
Щоб створити розширення користувача, потрібно створити 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; };
Як використовувати щойно створене розширення ядра?
- Перейдіть до Selenium IDE
Натисніть Параметри -> Параметри…
- У розділі Загальні виберіть розташування новоствореного Selenium Розширення ядра
- Натисніть OK і перезапустіть Selenium IDE
- Ви знайдете розширення у списку команд
Ось список популярних розширень/плагінів, які використовуються в 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 Основне розширення, яке використовується в цьому посібнику