comment peut-Sikuli être utilisé pour attendre le bouton jusqu'à ce qu'il affiche, puis cliquez sur elle?
je m en appliquant un sikuli skript sur une page web, de sorte que lorsque le chargement de la page il attend pour le bouton quand il apparaît, il clique sur elle, sinon il attendre un certain temps jusqu'à ce que le bouton s'affiche sur la page web..j'ai fait le script suivant ..il fonctionne très bien pour 2 ou trois boucles, mais après, puis le programme s'arrête et sikuli fenêtre s'affiche ..voici mon code.
tout existe("img1.png"):
click("img1.png")
wait("img2",30*60)
click("img2.png")
click("window close button.png") //here it closes the 2nd popup tab after clicking on img2 then it return to its page
où il attendre tor le img1 bouton pour apparaître de nouveau .. donc
attendre("img1.png",30*60)
//ce script fonctionne sur 3 -4 itération avec succès, mais il s'arrête et sikuli fenêtre apparaît avec pas d'erreurs . merci pour votre aide
Vous devez vous connecter pour publier un commentaire.
Sans aucun message d'erreur, il est difficile de dire pourquoi votre script ne fonctionne pas. Mais ma meilleure supposition est que l'
while exists("img1.png")
renvoie faux car img1.png ne peut pas être trouvé. Peut-être Sikuli ne pouvez pas trouver img1.png parce que la page n'est pas rechargée encore. Essayez d'ajouter unwait(1)
à la fin de lawhile
déclaration.Alternativement essayez d'utiliser la
onAppear
etobserve
méthodes de la Région classe: La région.observer()Noter que ce n'est pas la même chose que d'attendre("img2.png",30*60)
Également, à des fins de débogage essayer trouver("img2.png") qui permettra de placer le pointeur de la souris sur img2.png lorsqu'elle apparaît sur l'écran. Si la souris ne survolez img2.png après qu'il apparaît, vous pouvez réduire la précision de la recherche à l'aide de la similaire() de la commande.
Pas sûr que vous avez résolu votre problème, déjà.
Effets comme les vôtres sont toujours des problèmes de timing: quelque chose déclenchée par une action de la souris soit arrive trop vite ou trop lentement, de sorte que la prochaine Sikuli instruction de Script ne permet pas de "voir", ce que votre flux de travail s'attend à trouver sur l'écran.
Donc, comme déjà mentionné par eostrows ci-dessus, si le script se termine en silence, sans messages d'erreur, puis le "tout existe()" a donné une NotFound état et arrêté la boucle, parce que le img1 n'est pas venu dans les 3 secondes après le clic("bouton de fermeture de fenêtre.png").
Cela doit être ainsi, parce que toutes les autres actions à l'intérieur de la boucle, soit de travail ou à la fin du script avec un FindFailed exception.
Vous pourrait rendre le flux de travail plus robuste cette façon: