Selenium Основні розширення (User-Extensions.js)
⚡ Розумний підсумок
Selenium Основні розширення, які також називаються розширеннями користувачів, додають власні дії, засоби доступу та стратегії локатора до Selenium IDE шляхом підключення JavaФункції скрипта для Selenium та прототипи об'єктів PageBot під час запуску IDE.
Selenium Основні розширення
Щоб зрозуміти розширення, давайте спочатку зрозуміємо три основи Selenium IDEКожна команда, яку ви записуєте або вводите в IDE, належить до однієї з трьох категорій, наведених нижче, і кожен знімок екрана показує, як ця категорія відображається у списку команд IDE.
- дія: Яку операцію ви виконуєте на екрані інтерфейсу користувача.
- Аксесори / Твердження: Яку перевірку ви виконуєте над даними, отриманими з інтерфейсу користувача.
- Стратегія локатора: Як знайти елемент в інтерфейсі користувача.
Selenium IDE постачається зі зрілою бібліотекою, яка вже містить безліч дій, методів доступу та тверджень, а також стратегій локатора.
Однак іноді проєкту потрібна функціональність, якої немає в цій бібліотеці. У такому випадку ви можете розширити бібліотеку, додавши власне спеціальне розширення. Ці спеціалізовані розширення називаються розширення користувача.
Наприклад, припустимо, що вам потрібна дія, яка перетворює текст у верхній регістр перед заповненням ним веб-елемента. У бібліотеці за замовчуванням такої дії немає, тому ви створюєте власне розширення користувача. У цьому посібнику ви дізнаєтеся, як створити розширення користувача, яке перетворює текст у верхній регістр.
⚠️ Перш ніж почати: описаний тут робочий процес належить Selenium Ядро та оригінал Firefox-підключати Selenium IDE. Selenium Ядро було вилучено з підтримки, а підтримку розширень для користувачів припинено. Selenium банки в Selenium 3. Наведені нижче кроки та код збережено, оскільки велика кількість застарілих пакетів Selenese все ще залежить від них; сучасна заміна описана далі в цій статті.
Вимога щодо створення Selenium Розширення користувача
Щоб створити розширення користувача для Selenium IDE, вам потрібні основні поняття JavaScript і, зокрема, JavaПрототип об'єкта скрипта. На діаграмі нижче показано два прототипи об'єктів, до яких приєднується розширення користувача.
Щоб створити розширення користувача, ви пишете JavaМетоди скриптів та додайте їх до Selenium прототип об'єкта та прототип об'єкта PageBot.
Як Selenium IDE розпізнає розширення користувача
Після додавання розширення користувача до Selenium IDE та IDE запущено, кожна функція зареєстрована на цих JavaПрототипи скриптів завантажено, і Selenium IDE розпізнає кожну з них за її назвою. Саме тому префікси імен у наступному розділі не є вибором стилю — вони являють собою те, як IDE класифікує вашу команду.
Як створити розширення користувача
Крок 1) Дія – усі дії починаються з doЯкщо дія перетворює текст у верхній регістр, її назва буде doTextUpperCaseКоли ви додаєте цей метод дії до Selenium IDE, саме IDE створює відповідний метод очікування, тому doTextUpperCase також створює функцію очікування текстUpperCaseAndWaitМетод може приймати два параметри.
Приклад: дія з текстом у верхньому регістрі
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 прототипи об'єкта мають префікс отримати or is, наприклад, getValueFromCompoundTable або isValueFromCompoundTable. Аксесор може приймати два параметри: один для цілі та один для поля значення в тестовому випадку. На скріншоті нижче показано, як ці префікси виглядають після завантаження розширення.
Для кожного аксессора, Selenium IDE генерує відповідні функції перевірки з префіксом перевірити та стверджувати, а також функція очікування з префіксом чекати.
Приклад: Для методів доступу до тексту у верхньому регістрі
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; };
Збережіть усі три функції в одному файлі з назвою user-extensions.jsФайл простий. JavaСкрипт, тому достатньо будь-якого текстового редактора.
Як використовувати новостворене розширення Core
Завантаження файлу в оригіналі складається з чотирьох кроків Firefox-плагін IDE. Кожен знімок екрана нижче відповідає пронумерованому кроку поруч із ним.
- Перейдіть до Selenium IDE та клацніть Параметри -> Параметри…
- Перейдіть на вкладку Загальне розділі виберіть розташування щойно створеного Selenium Розширення ядра.
- Натисніть OK та перезавантажте Selenium ІДЕ.
- Ви знайдете розширення у списку команд.
Selenium Основні розширення проти Selenium Розширення IDE
Ці два терміни використовуються як взаємозамінні у старих матеріалах, але вони описують різні шари, і ця різниця має значення, коли ви вирішуєте, де розмістити власну логіку.
| Аспект | Selenium Розширення ядра | Selenium Розширення IDE |
|---|---|---|
| Що це розширює | Бібліотека команд Selenese, що використовується під час відтворення | Сама IDE-програма |
| Файл завантажено | user-extensions.js | user-extensions-ide.js у застарілій IDE, маніфест плагіна в поточній IDE |
| Типове використання | Нові дії, засоби доступу та стратегії локатора | Нові елементи меню, панелі, формати та поведінка диктофона |
| Предмети, яких торкалися | Selenium.prototype та PageBot.prototype | API редактора та записуючого пристрою IDE |
| Виконується протягом | Виконання тесту | Авторство та запис |
Коротше кажучи, розширення Core змінює можливості тесту, тоді як розширення IDE змінює можливості інструменту.
Як сучасний Selenium IDE замінює user-extensions.js
Команда Firefox-підключати Selenium IDE перестав працювати, коли Firefox перейшов на архітектуру WebExtensions, а IDE було переписано як Chrome, Firefox і розширення для браузера Edge. Це переписування видалило поле «Параметри», показане вище, тому немає місця для вказівки на файл user-extensions.js. Дві підтримувані альтернативи охоплюють ту саму тему.
- Команда виконання скрипта. Для одноразового використання JavaСкрипт, додайте виконати скрипт or виконати асинхронний скрипт безпосередньо перейти до тесту та зберегти результат у змінній. Це найближчий еквівалент невеликої користувацької дії.
- Плагін. Для команд повторного використання створіть розширення браузера, яке реєструє маніфест в IDE. Маніфест оголошує кожну нову команду з ідентифікатором, назвою, необов'язковим типом та документацією, а також може оголошувати нові локатори.
Маніфест реєструється шляхом надсилання повідомлення до розширення IDE, як показано в офіційному Selenium Документація плагіна IDE.
browser.runtime.sendMessage(SIDE_ID, {
uri: "/register",
verb: "post",
payload: {
name: "Selenium IDE plugin",
version: "1.0.0",
commands: [
{ id: "textUpperCase", name: "text upper case" }
]
}
}).catch(console.error);
Дисципліна іменування переживає міграцію: команда плагіна все ще оголошується один раз, а потім повторно використовується в кожному тесті, точно так само, як і розширення Core.
Популярні розширення та плагіни, що використовуються в Selenium IDE
Наведені нижче доповнення були найбільш широко використовуваними у застарілій IDE. Деякі з них, такі як керування потоком та створення знімків екрана у разі невдачі, тепер вбудовані в поточну IDE або доступні як підтримувані плагіни.
| ІМ'Я | Мета |
|---|---|
| Вибрані | Позначити набір тестів як обраний та виконати його одним клацанням миші |
| Flex Pilot X | Для автоматизації на основі Flex |
| ФлексМонкіум | Для запису та відтворення на основі Adobe Flex Тестування in Selenium IDE |
| Журналування файлів | Для збереження журналів у файлі |
| Управління потоком | Для контролю потоку виконання тесту |
| Виділіть елементи | Щоб виділити веб-елемент керування |
| Неявне очікування | Чекати на елемент протягом певного часу |
| Знімок екрана при помилці | Зробіть скріншот у разі невдачі |
| Результати тестування | Зберегти тестовий випадок результат для набору тестів в один клік |
Старий SeleniumСторінка завантаження HQ, на якій розміщувалися ці файли, більше не існує. Поточні плагіни та саме IDE розповсюджуються з Selenium Сайт проекту IDE і з Chrome, Firefox і магазини доповнень Edge.
Завантажити Selenium Основне розширення, яке використовується в цьому посібнику









