Разширения на ядрото на селен (User-Extensions.js)

Съдържание:

Anonim

За да разберем разширенията, нека първо разберем трите стълба на селен 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 = функция (локатор, текст) {// Тук findElement сам е в състояние да обработва всички видове локатори (xpath, css, name, id, className), просто трябва да предадем текста на локатораvar елемент = this.page (). findElement (локатор);// Създаване на текст за въвежданеtext = text.toUpperCase ();// Заменете текста на елемента с новия текстthis.page (). replaceText (елемент, текст);};

Стъпка 2) Оценители / твърдение - Всички оценители, регистрирани в прототип на селен обект, ще бъдат с префикс

чрез "get" или "is" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Той може да приеме два параметъра, един за цел и друг за поле за стойност в тестовия случай.

За всеки оценител ще има съответни функции за проверка с префикс от "verify", "assert" и префикс на функцията за чакане от "waitFor"

Пример: За оценители на главни букви

Selenium.prototype.assertTextUpperCase = функция (локатор, текст) {// Всички стратегии за локатор автоматично се обработват от "findElement"var елемент = this.page (). findElement (локатор);// Създаване на текст за проверкаtext = text.toUpperCase ();// Вземете действителната стойност на елементаvar actualValue = element.value;// Уверете се, че действителната стойност съвпада с очакванатаAssert.matches (очаквана стойност, действителна стойност);};Selenium.prototype.isTextEqual = функция (локатор, текст) {върнете this.getText (локатор) .value === текст;};Selenium.prototype.getTextValue = функция (локатор, текст) {върнете this.getText (локатор) .value;};

Стъпка 3) Стратегия за локатор - Ако искаме да създадем наша собствена функция за намиране на елемент тогава

трябва да разширим прототипа PageBot с функция с префикс "locateElementBy."

Ще са необходими два параметъра, първият ще бъде низът на локатора, а вторият ще бъде документът

където трябва да се търси.

Пример: За локатор на текст с главни букви

// "InDocument" е документ, който търсите.PageBot.prototype.locateElementByUpperCase = функция (текст, inDocument) {// Създаване на текст за търсенеvar očekujeValue = text.toUpperCase ();// Прегледайте всички елементи, търсейки такива, които имат// стойност === нашата очаквана стойностvar allElements = inDocument.getElementsByTagName ("*");// Тази звезда '*' е вид регулярен израз, който ще премине през всеки елемент (в HTML DOM всеки елемент със сигурност има име на маркер като , ,

, , ,
и т.н.). Тук нашият мотив е да намерим елемент, който съвпада с текста на главни букви, който сме предали, така че ще го търсим с всички елементи и когато получим съвпадение, ще имаме правилния уеб елемент.за (var i = 0; i

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

  1. Отидете на Selenium IDE

    Щракнете върху Опции -> Опции ...

  1. В раздела Общи изберете местоположението на новосъздаденото разширение на ядрото Selenium

  2. Щракнете върху OK и рестартирайте Selenium IDE

  1. Ще намерите разширението в списъка с команди

Ето списък с популярни разширения / приставки, използвани в IDE на Selenium

Име Предназначение
Любими За да маркирате тестовия пакет като предпочитан и да ги изпълните с едно щракване
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 IDE и да рестартирате IDE.

Изтеглете разширението на Selenium Core, използвано в този урок