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

Чтобы понять расширения, давайте сначала разберемся с тремя столпами Selenium IDE.

  1. Действие: какую операцию вы выполняете на экране пользовательского интерфейса.

    Selenium Основные расширения

  2. Эксперты/утверждение: какую проверку вы выполняете на данных, полученных от пользовательского интерфейса?

Selenium Основные расширения

  1. Стратегия локатора: как найти элемент в пользовательском интерфейсе.

Selenium Основные расширения

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

Но иногда нам нужно добавить к нему дополнительную функциональность для требований нашего проекта. В этой ситуации мы можем расширить эту библиотеку, добавив наши собственные расширения. Эти пользовательские расширения называются «Пользовательскими расширениями».

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

Требование к созданию Selenium расширение пользователя

Чтобы создать расширение пользователя для Selenium IDE, нам нужно знать базовую концепцию JavaСценарий и Java Концепция объекта-прототипа сценария.

Требование создания Selenium Расширение пользователя

Чтобы создать расширение пользователя, вам необходимо создать 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;
    };

Как использовать вновь созданное основное расширение?

  1. Перейдите на Selenium IDE

    Нажмите «Параметры» -> «Параметры…».

Используйте недавно созданное основное расширение

  1. В разделе «Общие» выберите расположение вновь созданного Selenium Основное расширение

    Используйте недавно созданное основное расширение

  2. Нажмите ОК и перезапустите Selenium IDE

Используйте недавно созданное основное расширение

  1. Вы найдете расширение в списке команд.

Используйте недавно созданное основное расширение

Вот список популярных расширений/плагинов, используемых в 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 Базовое расширение, используемое в этом руководстве