Controlador IO Tutorial usando un sitio Web de web y ejemplos de trabajo (6 / 8 paso)

Paso 6: Consejos y trucos

  • Depuración:

    • Gire sobre el registro en el nivel de controlador de depuración más y a crear registros.

      • Set logLevel para 'detallado'
      • Set logOutput a nombre del directorio ('logs')
 // load the driver for browser driver = webdriverio.remote({ desiredCapabilities: {browserName: process.env.SELENIUM_BROWSER || 'chrome'} }); 
  • Utilizar console.log(), debug(), getText() para depurar.

    • Console.log() - utilizar para mostrar información para determinar el estado.
    • debug() - uso pausa explorador/secuencia de comandos hasta que se pulse enter en la línea de comandos.
    • getText() - Utilice para verificar que está interactuando con el elemento correcto.
      • Especialmente útil con las expresiones xpath.
 // reusable code - library<br> // code snippet if(bp == "DESKTOP") { obj.width = 1200; obj.height = 600; obj.name = bp; } else if(bp == "TABLET") { obj.width = 992; obj.height = 600; obj.name = bp; } else if(bp == "MOBILE") { obj.width = 768; obj.height = 400; obj.name = bp; } 
  • Utilice la Variable de entorno para cambiar dinámicamente el navegador:

  • Utilice la variable de entorno SELENIUM_BROWSER para invocar otro navegador sin modificar el script de prueba cada vez.
  • Requiere un ligero cambio de codificación para apoyar.

Cambios en el código:

 // Test script before( function(done) { winsize = common.getWindowSizeParams(); ... driver.addCommand('setWindowSize', common.setWindowSize.bind(driver)); } // set the window size it('should set window size', function (done) { // only the width matters driver.setWindowSize(winsize.width, winsize.height, function () {}).call(done); }); 

Navegadores soportados:

  • Internet Explorer - IE 8 + (sólo Windows)

    • SELENIUM_BROWSER = es decir moka
  • Firefox 10 + (Max/Windows/Linux)
    • SELENIUM_BROWSER = firefox mocha
  • Chrome 12 + (Max/Windows/Linux)
    • SELENIUM_BROWSER = cromo mocha
  • Opera 12 +
    • SELENIUM_BROWSER = mocha de ópera
  • Safari
    • SELENIUM_BROWSER = mocha de safari

Pruebas:

  • Para Windows utilizar git bash shell:

    • SELENIUM_BROWSER = cromo mocha
    • $ SELENIUM_BROWSER = cromo mocha DynamicBrowser.js
  • Para Mac o Linux, abrimos el terminal:
    • SELENIUM_BROWSER = cromo mocha
    • $ SELENIUM_BROWSER = cromo mocha DynamicBrowser.js
  • Prueba sensible:

    • Determinar puntos de corte basados en proyecto o marco (es decir bootstrap).
    • Definir variables de entorno para cada punto de interrupción:
      • ESCRITORIO - 1200 px
      • TABLET - 992 px
      • MOBILE - 768 px
    • Desarrollar un comando reutilizable para leer la variable de entorno y configura el tamaño del navegador.
      • Ver ejemplo más abajo.
    • Llame el comando reutilizable en su script de prueba.
 // verifyLastNameCheckError() // // Description: // Verifies the last name form validation error message // // Input: // number - index of error (1-5) // Output: // none // var verifyLastNameCheckError = function () { var idx = arguments[0], callback = arguments[arguments.length - 1]; this .getText("//ul[ alert-danger']/li[" + idx + "]", function(err, e) { console.log('Error found: ' + e); (e).should.be.equal('Please enter last name'); }) .call(callback); }; // export the function module.exports.verifyLastNameCheckError = verifyLastNameCheckError; 
 // require the reusable command - CommonLib common = require('./Common/CommonLib'); ... // bind the commands driver.addCommand('verifyFirstNameError', common.verifyFirstNameCheckError.bind(driver)); driver.addCommand('verifyLastNameError', common.verifyLastNameCheckError.bind(driver)); it('should contain 2 errors: first/last name', function () { // call the reusable function driver .verifyFirstNameError(1); .verifyLastNameError(2); }); 
  • Comandos reutilizables (comandos personalizados):

    • Web controlador IO es fácilmente extensible.
    • Me gusta poner todos los comandos reutilizables en una biblioteca. (tal vez esto es vieja escuela pero funciona!)

common/commonLib.js

 // Set/verify first/last name using Callback it('should set/verify first/last name using Callbacks', function (done) { driver.setValue("#fname", "Tony", function (e) { driver.getValue("#fname", function (err, e) { (e).should.be.equal("Tony"); console.log("First Name: " + e); driver.setValue("#lname", "Keith", function (e) { driver.getValue("#lname", function (err, e) { (e).should.be.equal("Keith"); console.log("Last Name: " + e); done(); }); }); }); }); }); 

Aquí están los cambios específicos que se necesitan para llamar a una función reutilizable

Ver formFieldValidation.js por ejemplo completo de trabajo

 // Set/verify first/last name using Promises it('should set/verify first/last name using Promises', function () { return driver.setValue("#fname", "Tony") .getValue("#fname").then( function (e) { (e).should.be.equal("Tony"); console.log("First Name: " + e); }) .setValue("#lname", "Keith") .getValue("#lname").then( function (e) { (e).should.be.equal("Keith"); console.log("Last Name: " + e); }); }); 
  • Estructura de directorio de archivos del proyecto:

    • Aquí es típico proyecto estructura:

      • "Proyecto" - directorio de proyecto principal

        • README.md - Léame de proyecto global
        • "Común" - directorio de globales funciones comunes a todos los proyectos
          • común-lib.js - biblioteca de funciones global
          • README.md - Léame de funciones globales
        • "Product1" - directorio de producto 1
          • prueba-script1.js
          • prueba-script2.js
          • "Común" - directorio de las funciones locales de proyecto 1
            • PROD1-lib.js - biblioteca de funciones locales de proyecto 1
            • README.md - readme para las funciones locales de proyecto 1
        • "Producto2" - directorio de producto 2test-script1.jstest-script2.js
          • "Común" - directorio de funciones locales al proyecto 2

            • prod2-lib.js - biblioteca de funciones locales de proyecto 2
            • README.md - readme para las funciones locales al proyecto 2
  • Scripts de prueba de la rotura en varios archivos:
    • Este es un ejemplo del uso de varios archivos:

      • Sanity Check - script de prueba básicas para verificar que todo funciona
      • Elemento y texto de validación - verificar todos los elementos y texto
      • Página de formulario Error validación - validación de error
      • Resultados de la búsqueda - prueba de contenido dinámico
  • Devoluciones de llamada VS. Promesas:

    • La versión 3 de Web controlador IO admite devoluciones de llamada y promesas.

      Promesas son el método preferido ya que reduce el manejo de errores
      código. Vea a continuación el mismo ejemplo escrito utilizando devoluciones de llamada y promesas.

Devoluciones de llamada

Promesas

			

          

Artículos Relacionados

Crear un sitio web utilizando iWeb

Crear un sitio web utilizando iWeb

sitios web son una forma sencilla de informar al público sobre su tema de interés. En este tutorial crearemos un sitio web de fitness con el programa iWeb. Usted puede hacer una página web sobre cualquier tema de su elección. Con un sitio web de fitn
Cómo crear un sitio web compartido usando Shutterfly.com

Cómo crear un sitio web compartido usando Shutterfly.com

Shutterfly ofrece una característica de participación donde los miembros pueden crear y publicar sitios Web. Un componente popular a la función de compartir es la Web de aula. Maestros pueden invitar a los padres para ver fotos, revisar calendarios y
Cómo hacer un sitio web usando weebly.com

Cómo hacer un sitio web usando weebly.com

Le enseñará cómo hacer sitios web [nuestra empresa] usando weebly.comPaso 1: RegistrarseSubir a weebly.com y firmar con tu correo electrónico [inicio de sesión con información de la empresa].Paso 2: Agregar o hacer un sitio webSi usted está firmando
Para principiantes hackers Tutorial Ep.2: Remotamente cerrar un sitio Web

Para principiantes hackers Tutorial Ep.2: Remotamente cerrar un sitio Web

* AVISO LEGAL *ESTA TÉCNICA YA NO FUNCIONA.En primer lugar quiero ir al menú Inicio y escriba SHUTDOWN-I y pulse enter y el programa debe abrirPaso 1: Principiante Hacker Tutorial Ep.2: remotamente cierre abajo de un sitio web Ahora, vas a necesitar
Formación de E-Commerce: Aprender a construir un sitio web de comercio electrónico usando software libre

Formación de E-Commerce: Aprender a construir un sitio web de comercio electrónico usando software libre

originalmente llamé a este curso el curso de capacitación de 4 horas e-commerce. Yo le pagado-para la formación en una base del webinar. Aunque menos de un año de edad, los materiales ya están un poco fuera de fecha, así que no puedo realmente cobrar
Cómo transmitir el eclipse solar a un sitio web con una webcam USB (código de C#) 20 de marzo de 2015

Cómo transmitir el eclipse solar a un sitio web con una webcam USB (código de C#) 20 de marzo de 2015

C# fuente de código para la transmisión de imagen para sitios web - no sólo en el 20 de marzo de 2015!Este artículo muestra cómo ver el eclipse solar segura el 20 de marzo en su PC mediante el uso de un simple USB webcamera. Es un C#-solución base qu
Crear un botón de lanzamiento del sitio web enorme, intermitente,

Crear un botón de lanzamiento del sitio web enorme, intermitente,

En hybris, acabamos de lanzar nuestro nuevo comercio cloud API en yaas.io. El equipo de labs de hybris apoyó el público arranque con un botón de lanzamiento frío. Es un botón grande cúpula estilo arcade, tiene un LED integrado así que usted puede dej
Hospedar su sitio web en frambuesa pi

Hospedar su sitio web en frambuesa pi

frambuesa pi es un tablero de bajo costo de desarrollo por la Fundación frambuesa, para este tutorial estoy usando la distro por adafruit que puede encontrar en http://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/occidentalis-v0-
Construir un sitio web para tan poco como $20 años!

Construir un sitio web para tan poco como $20 años!

En este instructable, va cubriendo todo lo que necesitas saber para crear un gran sitio web a muy bajo costo! Si desea ver algunos de mis trabajos, visitad: Webshawty.comUn par de cosas que tienes que:-Acceso a Internet-Una nueva computadoraOtros mat
Cómo construir tu propio sitio Web

Cómo construir tu propio sitio Web

una guía completamente cubierta para conseguir desde el papel hasta la web, gratis si lo desea, especialmente si cualquier webmasters amistoso deberle favores a pocos pero aún con poca experiencia y conocimiento puede construir un sitio web y consegu
Construir un sitio web profesional: parte 2

Construir un sitio web profesional: parte 2

esta es la segunda serie de las lecciones de punto en diseño web. Si eres nuevo en diseño web o la necesidad de volver a tapar, por favor informe: construir un sitio web profesional: parte 1Código HTML y los códigos de color son en este instructable:
Servidor gratuito alojado sitio web (Dropbox, GitHub, DNSPOD y Freenom)

Servidor gratuito alojado sitio web (Dropbox, GitHub, DNSPOD y Freenom)

Este tutorial mostrará cómo hospedar su sitio web en dos servidores independientes (una principal y una copia de seguridad) de esta forma que su sitio de Internet casi siempre estará en línea. A través de DNS de terceros te reenvío serán capaces de t
Construir tu propio sitio web con dreamweaver

Construir tu propio sitio web con dreamweaver

por lo que previamente he escrito sobre esto antes, el viejo es digno de la lectura en primer lugar, contiene instrucciones en photoshop y dreamweaver que esto no, sin embargo falta mucho señala respecto a este.Estos días hay toneladas de servicios p
Arduino Esp8266 Post datos al sitio Web

Arduino Esp8266 Post datos al sitio Web

El módulo de WiFi de ESP8266 es un autónomo SOC con pila de protocolo TCP/IP integrado que puede dar cualquier microcontrolador el acceso a tu red WiFi. Ofrece una completa y autónoma Wi-Fi networking solución, permitiendo organizar ya sea la aplicac