Maison > interface Web > Tutoriel H5 > Test de dessin sur toile avec rapporteur (1)

Test de dessin sur toile avec rapporteur (1)

黄舟
Libérer: 2017-02-25 13:10:59
original
1557 Les gens l'ont consulté

Protractor est un framework de test e2e développé par le gang Angular, qui utilise essentiellement webdriver.

Tester Canvas consiste principalement à comparer des images. Après avoir cherché, je n'ai pas trouvé de bonne bibliothèque nodejs, j'ai donc toujours utilisé les similarjs que j'utilisais auparavant.

resemblejs utilise Image et Canvas, il ne peut donc pas être utilisé directement dans nodejs.

Quelqu'un sur github a créé un node-resemble, mais il a utilisé un node-canvas écrit en C. Pour compiler cela, vous devez installer la bibliothèque d'exécution de Python et VC, ce qui semble très gênant. 2 étoiles.

Ne serait-il pas acceptable de laisser similar s'exécuter directement dans le navigateur ?

Cela nécessite l’utilisation de la méthode executeAsyncScript du navigateur.

Parlons d'abord d'executeAsyncScript

Cette méthode consiste à exécuter le code js dans l'environnement du navigateur, c'est-à-dire à l'exécuter dans l'environnement du navigateur, et toutes les choses dom peuvent être utilisées. , Toile, tout est une évidence.

Et c'est asynchrone. En fait, il existe un script d'exécution synchrone avec une utilisation similaire.

Je ne publierai pas l'API, mais parlerai juste de son utilisation.

La méthode executeAsyncScript est une méthode à paramètre variable

Le premier paramètre doit être une méthode, qui est le code à exécuter dans le navigateur.

Par exemple :

function(){
    console.log("我是一个方法");
};
Copier après la connexion


Ensuite, vous pouvez écrire n'importe quel nombre de paramètres plus tard, et dans la première méthode de paramètre, vous pouvez utiliser le tableau d'arguments pour les obtenir en séquence Ces paramètres

, par exemple :

function(){
Copier après la connexion
console.log("我是一个方法,我有三个参数")
    var p1=arguments[0];
    var p2=arguments[1];
    var p3=arguments[2];
};
Copier après la connexion

Parce qu'il est asynchrone, le résultat de l'exécution doit être renvoyé avec un rappel fonction. Cette fonction de rappel webdriver a Ready, c'est le dernier paramètre des arguments.

Ainsi, l'apparence complète du premier paramètre devrait être

function(){
    console.log("我是一个方法,我有三个参数")
    var p1=arguments[0];
    var p2=arguments[1];
    var p3=arguments[2];
    var callback=arguments[arguments.lenght-1];
    callback("返回");
};
Copier après la connexion

La valeur de retour de la méthode executeAsyncScript est une promesse

donc le la fonction entière est appelée. Elle devrait ressembler à ceci :

browser.executeAsyncScript("function(){console.log("前面写过了我就不写了")}",p1,p2,p3)
Copier après la connexion
.then(function(result){
        console.log("结果是"+result);
    });
Copier après la connexion

Le résultat du rappel dans la méthode then.

Cela devrait être la même chose si vous n'utilisez pas de rapporteur et utilisez uniquement le pilote Web.

D'accord, je ne suis pas arrivé au point après avoir écrit pendant longtemps, alors je vais juste faire ça pour le moment et écrire dans le prochain article.

Ce qui précède est le contenu de l'utilisation du rapporteur pour tester le dessin sur toile (1). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal