Selenium Extensiones principales (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 de IU?

    Selenium Extensiones principales

  2. Evaluadores/Aserciรณn: Quรฉ verificaciรณn hace sobre los datos que obtiene de UI

Selenium Extensiones principales

  1. Estrategia de localizaciรณn: ยฟCรณmo podemos encontrar el elemento en la interfaz de usuario?

Selenium Extensiones principales

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 Selenium extensiรณn de usuario

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 Selenium extensiรณn de usuario

Para crear su extensiรณn de usuario, necesita crear Java mรฉtodos de script y agregarlos al prototipo del objeto selenium y al prototipo del objeto PageBot.

Cรณmo Selenium ยฟIDE reconoce la extensiรณn de usuario?

Despuรฉs de agregar la extensiรณn de usuario a Selenium IDE cuando empezamos Selenium IDE, todas estas extensiones en el prototipo de JavaScript se cargan y Selenium IDE los 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 El propio 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. Ve a Selenium IDE

    Haga clic en Opciones -> Opcionesโ€ฆ

Utilice la extensiรณn principal reciรฉn creada

  1. En la secciรณn General seleccione la ubicaciรณn del reciรฉn creado Selenium Extensiรณn del nรบcleo

    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 in Selenium 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

Puedes conseguirlos todos y muchos mรกs en SeleniumSecciรณn de descargas del sitio oficial de HQ

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

Resumen

  • Hay tres partes de Selenium IDE, Acciรณn, Evaluadores/Aserciรณn, 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 la creaciรณn de la extensiรณn, es necesario agregarla Selenium IDE y reinicie IDE.

Descargue nuestra Selenium Extensiรณn principal utilizada en este tutorial

Resumir este post con: