Bonjour Tabkelm,
Je ne suis pas spécialisé en matière de javasrcipt, mais la méthoide .click doit en principe être utilisé sur un bouton.
D'après ce que tu as indiqué, il semble que ce sur quoi tu cherches à atteindre est en fait un dessin graphique de type SVG.
Tu n'indiques pas le site web, mais, comme la viewbox est de 24x24, je suppose qu'il s'agit d'un icône...?
Si cette image vectorielle n'est pas définie par le concepteur du site web comme un bouton, tu ne pourras pas cliquer dessus.
(pardon: tu pourras, mais cela sera sans effet !)
Mais si elle est bien définie comme un bouton, alors tu peux cliquer dessus à condition de connaître son nom.
J'ai observé que tous les objets d'une page de site n'ont pas toujours de nom défini. Dans ce cas, il faut les atteindre via un index de leur class. C'est peut être le cas de ta page qui contient plusieurs objets de class SVG
Par exemple, une page contient 4 objets de la class 'maClass' et je souhaite cliquer sur le 3ème:
Dio JavaScript "document.getElementsByClassName('maClass')[3].click()"
Est ce que cela t'aide ?
Par ailleurs, je vois que tu as utilisé un délai de 10 secondes, sans doute pour attendre que l'intégralité de la plage soit chargée.
Il est préférable et plus fiable d'utiliser la fonction "document.readystate" qui est renvoyée lorsque la page est totalement chargée:
1 2 3 4 5 6 7 8
| tell application "Safari"
activate
delay 1
repeat
if (do JavaScript "document.readyState" in document 1) is "complete" then exit repeat
delay 1 -- attend 1 seconde avant de vérifier de nouveau le statut de la page
end repeat
end tell |
Attention, il faut aussi que le nom du document Safari contienne celui du nouveau site, sinon c'est la page actuelle (précédente) qui sera déjà complète
Cordialement
Partager