2011-07-13 11 views
0

Je travaille sur un projet qui automatise Safari pour exécuter un lot de scripts de test. J'utilise safariwatir pour conduire les tests. Parfois, peut-être en raison de quelques problèmes JavaScript étranges, les scripts échouent. Par exemple, un script pour cliquer sur un lien ne fonctionnera pas car un rappel JavaScript est attaché au lien, et safariwatir ne parvient pas à invoquer le rappel JavaScript correctement. Lorsqu'un utilisateur clique manuellement sur le lien, la fonctionnalité fonctionne comme prévu. J'ai regardé l'implémentation de safariwatir et j'ai appris que l'automatisation des clics est implémentée via JavaScript.Comment automatiser un clic Safari avec AppleScript sans passer par JavaScript?

J'ai essayé de voir comment utiliser AppleScript pour automatiser un clic sur un bouton ou un lien, mais cette approche semble fragile parce que pour pouvoir accéder à un bouton dans AppleScript, il semble que je doive connaître sa position dans la hiérarchie GUI ("cliquez sur le bouton 3, dans la fenêtre 1, groupe 5, barre de défilement 6").

Je pense que cette approche est mieux, mais je ne sais pas s'il est possible: 1. Étant donné un ID d'élément HTML, obtenir l'élément graphique correspondant 2. Simuler un clic de souris sur l'élément graphique obtenu à partir # 1

Je suis presque certain que # 1 ci-dessus n'est actuellement pas possible. Cependant, si c'est faisable (même s'il n'est pas encore implémenté dans les boîtes à outils existantes), j'apprécierais les conseils sur la façon de le faire.

Merci!

Répondre

1

Je suis d'accord qu'il est difficile de trouver manuellement la hiérarchie afin que vous sachiez quoi cliquer avec applescript. Cependant, si vous connaissiez la position de l'endroit où vous voulez cliquer, vous pouvez effectuer un clic par position à la place. Je pense que javascript pourrait vous aider à trouver la position ... une fois que vous trouvez un objet, vous pouvez obtenir sa position.

Un autre problème, parfois les événements du système de script pour effectuer des clics ne fonctionne pas bien non plus et si vous trouvez que c'est le cas ici, je suggère d'utiliser un autre outil pour effectuer les clics physiques. J'ai développé l'outil ligne de commande pour effectuer des clics et l'utiliser lorsque les clics sur les événements système ne fonctionnent pas. Vous aurez besoin de connaître la position de l'écran pour que cet outil fonctionne. Peut-être que ça va t'aider. Vous pouvez trouver cet outil here.

Questions connexes