Расширения Selenium Core (User-Extensions.js)

Содержание:

Anonim

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

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

  2. Оценщики / Утверждение: как вы проверяете данные, полученные из пользовательского интерфейса.

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

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

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

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

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

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

Чтобы создать пользовательское расширение, вам необходимо создать методы сценария Java и добавить их в прототип объекта селена и прототип объекта PageBot.

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

После добавления пользовательского расширения в Selenium IDE при запуске Selenium IDE все эти расширения в прототипе javascript загружаются, и Selenium IDE распознает их по имени.

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

Шаг 1) Действие - все действия запускаются с «do», т.е. если действие для текста в верхнем регистре, его имя будет doTextUpperCase. Когда мы добавляем этот метод действия в Selenium IDE, Selenium IDE сама создаст метод ожидания для этого действия. Итак, в этом случае, когда мы создаем действие doTextUpperCase , Selenium IDE создаст соответствующую функцию ожидания как TextUpperCaseAndWait . Он может принимать два параметра

Пример: действие с текстом в верхнем регистре

Selenium.prototype.doTextUpperCase = function (locator, text) {// Здесь findElement способен обрабатывать все типы локаторов (xpath, css, name, id, className), нам просто нужно передать текст локатораvar element = this.page (). findElement (локатор);// Создаем текст для вводатекст = текст.toUpperCase ();// Заменить текст элемента новым текстомthis.page (). replaceText (элемент, текст);};

Шаг 2) Оценщики / Утверждение. Все оценщики, зарегистрированные в прототипе объекта селена, будут иметь префикс.

на "получить" или "равно" Пример. getValueFromCompoundTable, isValueFromCompoundTable. Он может принимать два параметра, один для цели, а другой для поля значения в тестовом примере.

Для каждого Оценщика будут соответствующие функции проверки с префиксом «verify», «assert» и префиксом функции ожидания «waitFor».

Пример: для оценщиков текста в верхнем регистре

Selenium.prototype.assertTextUpperCase = function (locator, text) {// Все стратегии-локаторы автоматически обрабатываются findElementvar element = this.page (). findElement (локатор);// Создаем текст для проверкитекст = текст.toUpperCase ();// Получаем фактическое значение элементаvar actualValue = element.value;// Убедитесь, что фактическое значение соответствует ожидаемомуAssert.matches (ожидаемое значение, фактическое значение);};Selenium.prototype.isTextEqual = function (locator, text) {вернуть this.getText (локатор) .value === текст;};Selenium.prototype.getTextValue = function (locator, text) {вернуть this.getText (локатор) .value;};

Шаг 3) Стратегия локатора. Если мы хотим создать нашу собственную функцию для поиска элемента, тогда

нам нужно расширить прототип PageBot функцией с префиксом locateElementBy.

Он принимает два параметра, первый - это строка локатора, а второй - документ.

где это нужно искать.

Пример: для локатора текста в верхнем регистре

// «inDocument» - это документ, который вы ищете.PageBot.prototype.locateElementByUpperCase = function (text, inDocument) {// Создаем текст для поискаvar expectedValue = text.toUpperCase ();// Перебираем все элементы в поисках тех, у которых есть// значение === наше ожидаемое значениеvar allElements = inDocument.getElementsByTagName ("*");// Эта звездочка '*' - это своего рода регулярное выражение, которое будет проходить через каждый элемент (в HTML DOM каждый элемент обязательно имеет имя тега, например , ,

, , ,
и т. д.). Здесь наш мотив - найти элемент, который соответствует переданному нами в верхнем регистре тексту, поэтому мы будем искать его по всем элементам, и когда мы найдем совпадение, у нас будет правильный веб-элемент.for (var i = 0; i

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

  1. Перейти в Selenium IDE

    Щелкните Параметры -> Параметры…

  1. В разделе General выберите расположение только что созданного Selenium Core Extension.

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

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

Вот список популярных расширений / плагинов, используемых в Selenium IDE.

Имя Цель
Избранное Чтобы отметить набор тестов как избранный и выполнить их одним щелчком мыши
Flex Pilot X Для автоматизации на основе Flex
FlexMonkium Для тестирования записи и воспроизведения на базе Adobe Flex в Selenium IDE
Журнал файлов Для сохранения журналов в файл
Управление потоком Для управления потоком выполнения теста
Выделить элементы Чтобы выделить веб-элемент управления
Неявное ожидание Дождаться элемента в течение определенного срока
Снимок экрана при сбое Сделайте снимок экрана при неудаче
Результаты теста Сохранить результат теста для набора тестов одним щелчком мыши

Вы можете получить все это и многое другое в разделе загрузок официального сайта SeleniumHQ.

http://docs.seleniumhq.org/download/

Резюме:

  • Стратегия Selenium IDE состоит из трех частей: Action, Assessors / Assertion, Locator.
  • Расширение пользователя создается, когда Selenium IDE не выполняет текущее требование.
  • Для создания пользовательского расширения необходимо добавить javascript в прототип объекта selenium.
  • После создания расширения необходимо добавить его в Selenium IDE и перезапустить IDE.

Загрузите расширение Selenium Core, используемое в этом руководстве.