Extensiones de Selenium Core (User-Extensions.js)

Para comprender las extensiones, primero comprendamos los tres pilares de Selenium IDE.

  1. Acción: ¿Qué operación estás realizando en la pantalla UI?

    Extensiones de núcleo de selenio

  2. Evaluadores/Aserción: Qué verificación hace sobre los datos que obtiene de UI

Extensiones de núcleo de selenio

  1. Estrategia de localización: ¿Cómo podemos encontrar el elemento en la interfaz de usuario?

Extensiones de núcleo de selenio

Ahora, Selenium IDE tiene una biblioteca muy madura con muchas acciones, afirmaciones/evaluadores y estrategias de localización.

Pero a veces necesitamos agregarle más funciones para los requisitos de nuestro proyecto. En esa situación, podemos ampliar 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 Java Concepto de objeto prototipo de script.

Requisito para crear una extensión de usuario de Selenium

Para crear su extensión de usuario, necesita crear métodos de script Java y agregarlos al prototipo de objeto Selenium 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 comienzan 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 doTextUpperCase acción, Selenium IDE creará una función de espera correspondiente como Texto en mayúsculas y espera. Puede aceptar dos parámetros.

Ejemplo: acción de texto en mayúsculas

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);
    };

Paso 2) Evaluadores/Afirmación- Todos los evaluadores registrados en el prototipo de objeto de selenio tendrán un prefijo

por “obtener” o “es” Éx. getValueFromCompoundTable, isValueFromCompoundTable. Puede aceptar dos parámetros, uno para el objetivo y otro para el campo de valor en el caso de prueba.

Crear extensión de usuario

Para cada evaluador, habrá funciones de verificación correspondientes con el prefijo "verificar", "afirmar" y la función de espera con el prefijo "esperar".

Ejemplo: para evaluadores de texto en mayúsculas

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;
    };

Paso 3) Estrategia de localización Si deseamos crear nuestra propia función para localizar un elemento entonces

Necesitamos ampliar 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 hay que buscarlo.

Ejemplo: para localizador de texto en mayúsculas

// 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;
    };

¿Cómo utilizar la extensión principal recién creada?

  1. Ir a Selenio IDE

    Haga clic en Opciones -> Opciones…

Utilice la extensión principal recién creada

  1. En la sección General, seleccione la ubicación de la extensión Selenium Core recién creada.

    Utilice la extensión principal recién creada

  2. Haga clic en Aceptar y reinicie Selenium IDE

Utilice la extensión principal recién creada

  1. Encontrarás la extensión en la lista de comandos.

Utilice la extensión principal recién creada

Aquí hay una lista de extensiones/complementos populares utilizados en Selenium IDE

Nombre Propósito
Favoritos Para marcar un conjunto de pruebas como favorito y ejecutarlas con un solo clic
Piloto flexible X Para automatización basada en Flex
FlexMonkium Para grabación y reproducción basadas en Adobe Flex Pruebas en Selenio IDE
Registro de archivos Para guardar registros en un archivo
Control de flujo Para controlar el flujo de ejecución de la prueba
Elementos destacados Para resaltar un control web
Espera implícita Esperar un elemento durante un límite de tiempo determinado.
Captura de pantalla en caso de error Tome una captura de pantalla en caso de falla
resultados de la prueba Guardar Caso de prueba resultado de un conjunto de pruebas en un solo clic

Puede obtener todo esto y muchos más en la sección de descargas del sitio oficial de SeleniumHQ.

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

Resumen

  • Hay tres partes de Selenium IDE: acción, evaluadores/afirmación y estrategia de localización.
  • La extensión de usuario se crea cuando Selenium IDE no cumple con el requisito actual.
  • Para crear una extensión de usuario, es necesario agregar javascript al prototipo del objeto de Selenium.
  • Después de crear la extensión, es necesario agregarla en Selenium IDE y reiniciar IDE.

Descargue la extensión Selenium Core utilizada en este tutorial