hi j'utilise Selenium webDriver 2.25.0 et affronter les problèmes graves, P>
Merci d'avance pour vos suggestions valoritaires. P>
3 Réponses :
Les lignes suivantes ne sont pas optimisées, mais elles pourraient trouver des images cassées: concernant votre deuxième problème, je pense que je ne l'ai pas compris correctement. Pourriez-vous l'expliquer avec plus de détails? P> p>
Salut johnbo, une image ayant le nom est "myImage.jpg", première fois que je exécute mon script de test myImage trouvé. OK après quelques changements de développeurs de temps sur le site et ce "myImage" est remplacé par autre image ayant le même nom que "myImage" (sur dossier d'images). Maintenant, nous exécutons le script de test myImage trouvé et notre passe de script de test. Mais en réalité, c'est un bug car dans l'interface utilisateur une autre image obtient l'affichage. Merci pour votre réponse rapide.
Comme je le vois, vous devez stocker l'image dans la première exécution afin que vous puissiez le comparer la prochaine fois, car à partir du point de vue HTML, la page pourrait être exactement identique et sélénium ne pourra pas trouver la différence d'images. Ou peut-être que vous pourriez utiliser sélénium conjointement avec un outil de reconnaissance d'image comme le script Sikuli.
Je suis d'accord mais toutes les images de la page Web stockent et comparent ensuite, ce n'est pas bon en fonction de la performance. Nous pouvons jouer avec la taille de l'image (c'est-à-dire que nous pouvons stocker la taille de l'image et comparer la taille de l'image la prochaine fois). une idée s'il vous plaît suggérer.
Prenez une capture d'écran complète de page et vérifiez manuellement les résultats.
La réponse acceptée exige que vous utilisiez un proxy avec un appel supplémentaire à chaque image pour déterminer si les images sont cassées ou non.
Heureusement, il y a une autre façon de le faire en utilisant uniquement JavaScript (j'utilise Ruby, mais vous pouvez utiliser le même code dans n'importe quel à votre autre question, je Je recommanderais simplement de prendre une capture d'écran de la page et d'avoir un humain vérifiant manuellement la capture d'écran résultante a les images correctes. Les ordinateurs peuvent effectuer les travaux d'automatisation, mais les humains doivent vérifier et vérifier ses résultats de temps en temps :) p> p> Exécutecript code> sur les liaisons WebDriver): p>
Basé sur les autres réponses, le code qui a finalement travaillé pour moi dans un réglage angulaire / protacteur / webDriverjs est le suivant: Le code webdiver compte le nombre d'éléments IMG et la fonction Exécuté dans le contexte du navigateur compte le nombre d'éléments chargés avec succès. Ces chiffres doivent être les mêmes. P> P>
Le Allimgelts code> dans Protractor-Land fait fondamentalement la même chose que le
imgs code> interne navigateur-terre, non? (Je ne suis pas vraiment sûr qu'ils sont, si surtout que je pose cela.) Mais, s'ils étaient ... la seule différence de longueur serait si un
img [i] .naturalwidth <= 0 code>, non? Donc, il serait plus simple et plus efficace de sauter le
Allimgelts code> et que le script de navigateur-terre renvoie simplement le nombre d'images avec une largeur naturelle non valide et que les terrains de protreseur s'attendent à ce que ce comptage soit 0? (Vous allez manquer sur le
de la fantaisie, puis code> qui est un truc soigné à voir, cependant.)
Oui tu as raison. Cela peut être simplifié en renvoyant le nombre d'images cassées comme imgs.length - chargé code>, que vous pouvez alors vous attendre à être 0. Alors le
Allimgetls code> n'est plus nécessaire.