Para comprender las extensiones, primero comprendamos los tres pilares del IDE de selenio
- Acción: qué operación está realizando en la pantalla de la interfaz de usuario
- Evaluadores / Afirmación: qué verificación hace en los datos que obtiene de la IU
- Estrategia del localizador: ¿Cómo podemos encontrar el elemento en la interfaz de usuario?
Ahora, Selenium IDE tiene una biblioteca muy madura con muchas acciones, afirmaciones / asesores y estrategias de localización.
Pero a veces necesitamos agregarle más funcionalidad para los requisitos de nuestro proyecto. En esa situación, podemos expandir esta biblioteca agregando nuestras extensiones personalizadas. Estas extensiones personalizadas se denominan 'Extensión de usuario'.
Por ejemplo, necesitamos una Acción que pueda convertir el texto a mayúsculas antes de completarlo en un elemento web. No puede encontrar esta acción en la biblioteca de acciones predeterminada. En tal caso, puede crear su propia 'Extensión de usuario'. En este tutorial, aprenderemos cómo crear una extensión de usuario para convertir texto a mayúsculas
Requisito para crear la extensión de usuario de Selenium:
Para crear una extensión de usuario para Selenium IDE, necesitamos conocer el concepto básico de JavaScript y el concepto de objeto prototipo de Java Script.
Para crear su extensión de usuario, debe crear métodos de script Java y agregarlos al prototipo de objeto de selenio y al prototipo de objeto PageBot.
¿Cómo reconoce Selenium IDE la extensión de usuario?
Después de agregar la extensión de usuario a Selenium IDE cuando iniciamos Selenium IDE, todas estas extensiones en el prototipo de javascript se cargan y Selenium IDE las reconoce por su nombre.
Cómo crear una extensión de usuario
Paso 1) Acción : todas las acciones se inician con "hacer", es decir, si la acción es para texto en mayúsculas, su nombre será doTextUpperCase. Cuando agregamos este método de acción en Selenium IDE, Selenium IDE creará un método de espera para esta acción. Entonces, en este caso, cuando creamos la acción doTextUpperCase , Selenium IDE creará una función de espera correspondiente como TextUpperCaseAndWait . Puede aceptar dos parámetros
Ejemplo: acción de texto en mayúsculas
Selenium.prototype.doTextUpperCase = function (localizador, texto) {// Aquí findElement es capaz de manejar todo tipo de localizador (xpath, css, name, id, className), solo necesitamos pasar el texto del localizadorvar element = this.page (). findElement (localizador);// Crea el texto a escribirtext = text.toUpperCase ();// Reemplazar el texto del elemento con el nuevo textothis.page (). replaceText (elemento, texto);};
Paso 2) Evaluadores / afirmación: todos los evaluadores registrados en el prototipo de objeto de selenio tendrán el prefijo
por "obtener" o "es" Ej. getValueFromCompoundTable, isValueFromCompoundTable. Puede aceptar dos parámetros, uno para el objetivo y otro para el campo de valor en el caso de prueba.
Para cada evaluador, habrá funciones de verificación correspondientes con el prefijo "verificar", "afirmar" y el prefijo de función de espera con "esperar
Ejemplo: para evaluadores de texto en mayúsculas
Selenium.prototype.assertTextUpperCase = function (localizador, texto) {// Todas las estrategias de localización son manejadas automáticamente por "findElement"var element = this.page (). findElement (localizador);// Crea el texto para verificartext = text.toUpperCase ();// Obtiene el valor real del elementovar actualValue = element.value;// Asegúrese de que el valor real coincida con el esperadoAssert.matches (valor esperado, valor actual);};Selenium.prototype.isTextEqual = function (localizador, texto) {devuelve this.getText (localizador) .value === texto;};Selenium.prototype.getTextValue = function (localizador, texto) {devuelve this.getText (locator) .value;};
Paso 3) Estrategia del localizador: si deseamos crear nuestra propia función para ubicar un elemento, entonces
necesitamos extender el prototipo de PageBot con una función con el prefijo "LocateElementBy".
Se necesitarán dos parámetros, el primero será la cadena del localizador y el segundo será el documento
donde necesita ser buscado.
Ejemplo: para el localizador de texto en mayúsculas
// El "inDocument" es un documento que está buscando.PageBot.prototype.locateElementByUpperCase = function (text, inDocument) {// Crea el texto para buscarvar valor esperado = texto.toCaso Superior ();// Recorre todos los elementos, buscando los que tengan// un valor === nuestro valor esperadovar allElements = inDocument.getElementsByTagName ("*");// Esta estrella '*' es una especie de expresión regular que atravesará cada elemento (en HTML DOM cada elemento seguramente tiene un nombre de etiqueta como , ,,