Comment peut-Sikuli être utilisée pour attendre un bouton pour une longue période de temps, avec peut-être quelques tâches de maintenance entre les deux?
J'ai une page où je suis en attente pour un bouton, et quand il apparaît, je tiens à cliquer dessus. Le bouton est sur une minuterie et peut prendre aussi longtemps que une heure à apparaître. Aussi, si le bouton prend plus de temps qu'une certaine période de temps à apparaître, je voudrais déplacer la souris (sinon le site va me connecter automatiquement).
Donc, d'attendre un bouton j'ai conçu ce Sikuli script:
button = "button.png"
while(1):
if exists(button):
print("found it")
click(button)
break
else:
print("wait longer")
wait(button,30*60)
# do a regular task
print "all done!"
Le ci-dessus ne semble pas être fonctionnel. Si le bouton est sur l'écran, le script va le trouver... si, Toutefois, il doit attendre il sera tout simplement le temps rapidement avec un FindFailed exception (sur la click()
même si le bouton n'existe pas sur l'écran). J'ai envisagé d'écrire un gestionnaire, mais semble exagéré.
Ce que je fais mal et quel est le meilleur moyen d'attendre une longue période pour un événement visuel comme ça?
des outils comme le Sélénium (test fonctionnel) sont bonnes. Mais il ajoute non seulement de la valeur, mais donne plus de qualité, d'augmenter la productivité lors de la GUI test basé sur, comme sikuli est complétée avec/sans les tests fonctionnels.
OriginalL'auteur sakatc | 2012-07-25
Vous devez vous connecter pour publier un commentaire.
Quelques autres pensées pour vous...
Liens:
OriginalL'auteur spearson
Peut-être Sikuli reconnaît quelque chose qui ressemble tout à fait à votre bouton, et essaie de cliquer dessus.
Si vous faites un clic droit dans l'IDE de votre bouton de modèle, vous pouvez régler le niveau de tolérance à la reconnaissance. Essayer de réduire l'image exactement autour de votre bouton et d'accroître la valeur pour être plus précis.
Je vous suggère de lire ce tutoriel
http://doc.sikuli.org/tutorials/surveillance/surveillance.html
et de mettre en place un gestionnaire d'événements pour gérer votre bouton lorsqu'il apparaît
http://doc.sikuli.org/region.html#Region.onAppear
http://doc.sikuli.org/region.html#observingvisualeventsinaregion
Ce n'est pas la quantité de code à écrire.
Vous pouvez obtenir un bon exemple avec l'intégralité du code source dans Sikuli du Blog ici
http://sikuli.org/blog/2011/08/15/sikuli-plays-angry-birds-on-google-games/
Je pense que vous pouvez simplement mettre en place vos gestionnaires et aller avec
OriginalL'auteur Alessandro Da Rugna
Si vous voulez sikuli à faire des choses pendant que votre attente pour une image que je voudrais utiliser le onAppear(pic, fonction), observer(et pour TOUJOURS, true) méthodes voilà comment cela fonctionne
fondamentalement, ce que ce n'est onAppear analyse continuellement l'écran pour picYourWaitingFor.png. sikuli se poursuit après les mots tellement c'est de la numérisation de tout son travail. sur l'apparition de dit pic, il va passer à la fonction que vous avez mis comme deuxième paramètre de onAppear.
OriginalL'auteur switch201
J'ai le même problème que décrit. Ce n'est pas en attente pour toujours. Et Observer ne fonctionne pas, soit, parce qu'il ne montre jamais. Penser à vouloir vérifier pour l'événement seulement pour une certaine période de temps de 60 secondes. Si elle ne se produit pas, aller de l'avant. Ceci pourrait se produire dans une série d'événements. Si l'image n'apparaît pas dans les 60 secondes, déplacer, faire une autre série.
...un crash au bout de 60 secondes s'il ne trouve pas l'image, ce qui n'est pas ce qui est voulu dans mon cas.
J'ai donc fait quelque chose comme ceci:
Probablement une meilleure façon et de ne pas donner un temps exact, mais l'approche n'est pas planter le script.
Vous pouvez également essayer:
except it..
Devrait être plus court.OriginalL'auteur roguecode