Selenium Основные расширения (User-Extensions.js)
Чтобы понять расширения, давайте сначала разберемся с тремя столпами Selenium IDE.
- Действие: какую операцию вы выполняете на экране пользовательского интерфейса.
- Эксперты/утверждение: какую проверку вы выполняете на данных, полученных от пользовательского интерфейса?
- Стратегия локатора: как найти элемент в пользовательском интерфейсе.
Теперь, Selenium IDE имеет очень развитую библиотеку с множеством действий, утверждений/оценщиков и стратегий локатора.
Но иногда нам нужно добавить к нему дополнительную функциональность для требований нашего проекта. В этой ситуации мы можем расширить эту библиотеку, добавив наши собственные расширения. Эти пользовательские расширения называются «Пользовательскими расширениями».
Например, нам нужно действие, которое может преобразовать текст в верхний регистр перед его заполнением в веб-элементе. Вы не можете найти это действие в библиотеке действий по умолчанию. В таком случае вы можете создать свое собственное «Пользовательское расширение». В этом уроке мы узнаем, как создать пользовательское расширение для преобразования текста в верхний регистр.
Требование к созданию Selenium расширение пользователя
Чтобы создать расширение пользователя для Selenium IDE, нам нужно знать базовую концепцию JavaСценарий и Java Концепция объекта-прототипа сценария.
Чтобы создать расширение пользователя, вам необходимо создать Java методы скрипта и добавьте их в прототип объекта Selenium и прототип объекта PageBot.
Как Selenium IDE распознает расширение пользователя?
После добавления расширения пользователя в Selenium IDE, когда мы начинаем Selenium IDE, все эти расширения в прототипе JavaScript загружаются и Selenium IDE распознает их по имени.
Как создать расширение пользователя
Шаг 1) Действие– все действия начинаются с «do», т.е. если действие содержит текст в верхнем регистре, то его имя будет дотекступперкасе. Когда мы добавляем этот метод действия в Selenium SDI, Selenium IDE сама создаст метод ожидания для этого действия. Итак, в этом случае, когда мы создаем doTextUpperCase действие, Selenium IDE создаст соответствующую функцию ожидания, как Текст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, будут иметь префикс
посредством «получить» или «есть» Пр. 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 Основное расширение
- Нажмите ОК и перезапустите Selenium IDE
- Вы найдете расширение в списке команд.
Вот список популярных расширений/плагинов, используемых в Selenium IDE
Имя | Цель |
---|---|
Избранное | Чтобы пометить набор тестов как избранный и выполнить его в один клик |
Флекс Пилот X | Для автоматизации на основе Flex |
ФлексМонкиум | Для записи и воспроизведения на основе Adobe Flex Тестирование in Selenium IDE |
Ведение журнала файлов | Для сохранения логов в файл |
Управление потоком | Для управления потоком выполнения теста |
Выделить элементы | Чтобы выделить веб-элемент управления |
Неявное ожидание | Ожидание элемента в течение определенного срока |
Снимок экрана при ошибке | Сделать скриншот в случае неудачи |
Результаты тестирования | Сохранено Тестовый кейс результат для набора тестов в один клик |
Все это и многое другое вы можете получить на SeleniumРаздел загрузок официального сайта штаб-квартиры
http://docs.seleniumhq.org/download/
Резюме
- Есть три части Selenium IDE, действие, оценщики/утверждения, стратегия локатора.
- Расширение пользователя создается, когда Selenium IDE не соответствует текущему требованию.
- Чтобы создать пользовательское расширение, необходимо добавить JavaScript в прототип объекта Selenium.
- После создания расширения, необходимо добавить его в Selenium IDE и перезапустите IDE.
Скачать Selenium Базовое расширение, используемое в этом руководстве