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, имате нужда от основните понятия на JavaСценарий и, по-специално, JavaПрототип на обект на скрипт. Диаграмата по-долу показва двата прототипни обекта, към които се прикрепя потребителско разширение.
За да създадете потребителското си разширение, пишете JavaМетоди на скрипта и ги добавете към Selenium прототипа на обекта и към прототипа на обекта PageBot.
Как Selenium IDE разпознава потребителско разширение
След добавяне на потребителско разширение към Selenium IDE и IDE е стартирана, всяка функция е регистрирана в тях JavaПрототипите на скриптовете са заредени и Selenium IDE разпознава всяка команда по нейното име. Ето защо префиксите за именуване в следващия раздел не са избор на стил — те са начинът, по който IDE класифицира вашата команда.
Как да създадете потребителско разширение
Стъпка 1) Действие – всички действия започват с doАко действието преобразува текста в главни букви, името му е doTextUpperCaseКогато добавите този метод за действие към Selenium IDE, самата IDE създава съответстващ метод за изчакване, така че doTextUpperCase също така произвежда функцията за изчакване текстГлавниСписъциИИзчакванеМетодът може да приема два параметъра.
Пример: действие с текст с главни букви
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Скрипт, така че всеки текстов редактор е достатъчен.
Как да използвате новосъздаденото основно разширение
Зареждането на файла е задача от четири стъпки в оригинала Firefox-плъгин IDE. Всяка екранна снимка по-долу съответства на номерираната стъпка до нея.
- Отиди Selenium IDE и щракнете Опции -> Опции…
- в Общи раздел, изберете местоположението на новосъздадения Selenium Разширение на ядрото.
- Кликнете OK и рестартирайте Selenium SDI.
- Ще намерите разширението в списъка с команди.
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 автоматизация |
| FlexMonkium | За базиран на Adobe Flex запис и възпроизвеждане тестване in Selenium IDE |
| Регистриране на файлове | За запазване на регистрационни файлове във файл |
| Контрол на потока | За контролиране на потока на изпълнение на теста |
| Маркирайте елементи | За да маркирате уеб контрола |
| Неявно изчакайте | Да чакаш елемент за определен период от време |
| Екранна снимка при грешка | Направете екранна снимка при повреда |
| Резултати от тестовете | Запазване на тестов случай резултат за тестов пакет с едно кликване |
Старите хора SeleniumСтраницата за изтегляне на HQ, която е съхранявала тези файлове, вече не съществува. Текущите плъгини и самата IDE се разпространяват от Selenium Сайт на проекта IDE и от Chrome, Firefox и магазини за добавки за Edge.
Изтеглете Selenium Основно разширение, използвано в този урок









