Maison > Article > interface Web > Test de dessin sur toile avec rapporteur (1)
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("我是一个方法"); };
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(){
console.log("我是一个方法,我有三个参数") var p1=arguments[0]; var p2=arguments[1]; var p3=arguments[2]; };
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("返回"); };
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)
.then(function(result){ console.log("结果是"+result); });
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) !