Site Web pilote IO tutoriel à l’aide d’un Site en ligne et exemples de travail (6 / 8 étapes)

Étape 6: Conseils et astuces

  • Débogage :

    • Activer la journalisation au niveau du pilote pour plus de débogage et à créer des journaux.

      • La valeur logLevel à « verbose »
      • LogOutput la valeur nom de répertoire (« logs »)
 // load the driver for browser driver = webdriverio.remote({ desiredCapabilities: {browserName: process.env.SELENIUM_BROWSER || 'chrome'} }); 
  • Utilisez console.log(), debug(), getText() pour déboguer.

    • Console.log() - permet d’afficher les informations pour déterminer l’État.
    • Debug() - utilisation pause/script du navigateur jusqu'à ce que vous appuyez sur entrée sur la ligne de commande.
    • getText() - permet de vérifier que vous êtes en interaction avec l’élément correct.
      • Particulièrement utile avec des expressions 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; } 
  • Variable d’environnement permet de modifier le navigateur dynamiquement :

  • Variable d’environnement SELENIUM_BROWSER permet d’invoquer un autre navigateur sans modifier le script de test chaque fois.
  • Nécessite une légère modification de codage à l’appui.

Modifications du code :

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

Navigateurs pris en charge :

  • Internet Explorer - IE 8 + (Windows uniquement)

    • SELENIUM_BROWSER = c’est à dire moka
  • Firefox 10 + (Max/Windows/Linux)
    • SELENIUM_BROWSER = firefox moka
  • Chrome 12 + (Max/Windows/Linux)
    • SELENIUM_BROWSER = chrome moka
  • Opera 12 +
    • SELENIUM_BROWSER = moka opéra
  • Safari
    • SELENIUM_BROWSER = moka safari

Test :

  • Pour Windows utiliser git bash shell :

    • SELENIUM_BROWSER = chrome moka
    • $ SELENIUM_BROWSER = chrome moka DynamicBrowser.js
  • Pour Mac ou Linux, ouvrez terminal :
    • SELENIUM_BROWSER = chrome moka
    • $ SELENIUM_BROWSER = chrome moka DynamicBrowser.js
  • Tests adaptés :

    • Déterminer les points d’arrêt basés sur le projet ou le cadre (c’est à dire « bootstrap »).
    • Définir les variables d’environnement pour chaque point d’arrêt :
      • Ordinateur de bureau - 1200 px
      • TABLETTE - 992 px
      • MOBILE - 768 px
    • Développer une commande réutilisable pour lire la variable d’environnement et de définir la taille du navigateur.
      • Voir l’exemple ci-dessous.
    • Appelez la commande réutilisable dans votre script de test.
 // 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); }); 
  • Commandes réutilisables (commandes personnalisées) :

    • Web Driver IO est facilement extensible.
    • J’aimerais mettre toutes les commandes réutilisables dans une bibliothèque. (peut-être que c’est la vieille école, mais ça marche!)

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

Voici les changements spécifiques nécessaires pour appeler une fonction réutilisable

Voir formFieldValidation.js pour exemple de travail complet

 // 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); }); }); 
  • Structure de fichier/répertoire de projet :

    • Voici la structure du projet typique :

      • « Projet » - répertoire de projet principal

        • README.md - fichier Lisez-moi pour le projet global
        • « Commun » - répertoire pour les fonctions globales communes à tous les projets
          • common-lib.js - bibliothèque de fonctions globales
          • README.md - fichier Lisez-moi pour les fonctions globales
        • « Produit1 » - répertoire de produit 1
          • test-script1.js
          • test-script2.js
          • « Commun » - répertoire pour les fonctions locales à 1 du projet
            • prod1-lib.js - bibliothèque de fonction locale pour projet 1
            • README.md - fichier Lisez-moi pour les fonctions locales à 1 du projet
        • « Produit2 » - répertoire de produits 2test-script1.jstest-script2.js
          • « Commun » - répertoire pour les fonctions locales au projet 2

            • prod2-lib.js - bibliothèque de fonction locale pour projet 2
            • README.md - fichier Lisez-moi pour les fonctions locales au projet 2
  • Percer plusieurs fichiers de scripts de test :
    • Voici un exemple de l’utilisation de plusieurs fichiers :

      • Test de validation - script de test de base pour vérifier que tout fonctionne
      • Public static Element et Validation du texte - vérifier tous les éléments et le texte
      • Validation de formulaire/Page erreur - erreur de validation
      • Résultat de recherche - contenu dynamique test
  • Rappels de VS. Promesses :

    • Version 3 de IO pilote Web prend en charge les rappels et les promesses.

      Les promesses sont la méthode préférée car elle réduit la gestion des erreurs
      code. S’il vous plaît voir ci-dessous l’exemple même écrit à l’aide de rappels et promesses.

Rappels

Promesses

			
          

Articles Liés

Disparaissent les satanés Web des éléments à l’aide de Google Chrome

Disparaissent les satanés Web des éléments à l’aide de Google Chrome

j'ai un netbook, et certaines pages web ne sont pas vraiment conçus pour faire face à mon écran confortable.  Parfois, il y a des éléments d'une conception qui distraient ou tout simplement plaine obtenir sur votre chemin.  Par exemple : windows kang
Sans fil à distance à l’aide de NRF24L01 de 2,4 Ghz: Simple tutoriel à l’aide de NRF24L01 & Arduino

Sans fil à distance à l’aide de NRF24L01 de 2,4 Ghz: Simple tutoriel à l’aide de NRF24L01 & Arduino

Bonjour tout le monde c'est mon deuxième instructable. Après beaucoup de surf sur GOOGLE quand je ne serai pas en mesure de trouver un facile et un tutoriel simple pour NRF24L01 émetteur/récepteur, puis j'ai a décidé de publier une instructable là-de
Base Anime yeux tutoriel à l’aide de Photoshop

Base Anime yeux tutoriel à l’aide de Photoshop

Hi, vous les gars ! : D Je suis Shinigami-san et je tiens à vous présenter mon premier Instructables ! Veuillez regarder le suivant Powerpoint pour obtenir des instructions sur la façon de dessiner les yeux anime de base à l'aide de Photoshop .S'il v
Araignée et Web cheveux Clip tutoriel

Araignée et Web cheveux Clip tutoriel

Halloween inspiré ! Tellement facile, tellement mignon !Matériel nécessaire pour faire 2 pinces à cheveux :Marqueur permanent noir2-1" cercles de feutreenv. 18" bande de dentelleColle à tissu2 boutons plat taille medAiguille et du fil2 pinces à
Circuit d’alarme laser extrêmement simple - un tutoriel à l’aide de seulement quatre éléments !

Circuit d’alarme laser extrêmement simple - un tutoriel à l’aide de seulement quatre éléments !

Salut tout le monde !Edit : Nous avons maintenant une campagne de kickstarter tripwire laser ! Découvrez-le ici :Laser Tripwire Kickstarter campagne !Dans le passé, j'ai fait plusieurs laser et tutoriels de capteur de lumière qui ont été les ampli-op
Faire une balise clée personnalisable à l’aide de 123D Design en ligne

Faire une balise clée personnalisable à l’aide de 123D Design en ligne

j'ai récemment eu à concevoir un ensemble d'objets à distribuer à un événement de la technologie, conçu pour être facilement 3D imprimables et personnalisables, idéalement par des gens qui ne sont pas très familiers avec 3D logiciel de conception.Un
Cube papier parfait : Portant un projet à l’aide de développement des lignes parallèles

Cube papier parfait : Portant un projet à l’aide de développement des lignes parallèles

jamais eu une idée qui sonnait bien dans votre esprit ?  Il peut être facile hacher sur des esquisses de concept rugueux, mais quand vient le temps d'obtenir la règle et au crayon sur, les choses se corsent un peu plus.  Si nous savons comment utilis
Conseils pour choisir le meilleur parieur Sites en ligne

Conseils pour choisir le meilleur parieur Sites en ligne

Cette vidéo vous aidera à choisir un emplacement qui vous convient, inscrivez-vous et embarquez pour une expérience de parie qui vous tiendrons revenir pour plus. En savoir plus au Onlinesportbetting.net.au où vous pourrez faire l'expérience de toute
Les avantages de Free à la maison emplois travail

Les avantages de Free à la maison emplois travail

aujourd'hui à l'ère d'internet gratuit fonctionne à la maison emplois sont sans aucun doute lucrative et facile d'accès. Si vous êtes confiants quant à vos compétences et capacités, vous pouvez commencer le travail de la maison. C'est vraiment un exc
Comment faire un site Web

Comment faire un site Web

Apprenez à créer votre propre page Web en utilisant HTML!Étape 1: Introduction :L'épine dorsale de tout site Web est composé de fichiers Hyper Text Markup Language (HTML). Ce guide va vous montrer comment créer une simple page web à l'aide de sa dern
Comment diffuser l’éclipse solaire à un site Web avec une webcam USB (code source c#) 20 mars 2015 en

Comment diffuser l’éclipse solaire à un site Web avec une webcam USB (code source c#) 20 mars 2015 en

C# code pour diffusion d'image de la caméra vers des sites Web - non seulement sur 20 mars 2015 source !Cet article explique comment regarder l'éclipse en toute sécurité le 20 mars sur votre PC à l'aide d'une simple webcam USB. C'est un langage c#-so
Comment faire pour obtenir tous le site Web conception/codage des outils dont vous avez besoin - gratuitement !

Comment faire pour obtenir tous le site Web conception/codage des outils dont vous avez besoin - gratuitement !

Intéressé à apprendre à coder ou construire votre propre site Web mais n'avez pas envie de passer votre durement gagné en espèces sur les livres et logiciels ? Aujourd'hui de codage et de construction de site Web est si commun que vous pouvez trouver
Comment ajouter une carte Google à votre site Web

Comment ajouter une carte Google à votre site Web

Ce court tutoriel vous aidera incorporé et google carte dans votre site Web. Ce tutoriel est sous l'hypothèse que vous savez comment utiliser votre commonly de gestion de contenu, ou connaissez NTML à un niveau de base.Étape 1: Trouver votre carteIl
Construisez votre propre site Web avec dreamweaver

Construisez votre propre site Web avec dreamweaver

donc j'ai déjà écrit à ce sujet avant, celui est intéressant de lire tout d'abord, il contient des instructions sur photoshop et dreamweaver que cela n'est pas, cependant, il manque beaucoup de fait observer par rapport à celui-ci.Ces jours-ci il y a