0 votes

AppleScript clic sur le lien <th> de Safari

Sur la base de cette balise HTML, comment puis-je cliquer sur Afficher depuis TrustedMachines ?

Je sais comment le faire à partir de document.getElementById ou le nom mais je ne suis pas sûr de savoir comment le faire dans ce cas.

<td>
    <a data-auto-test-id="ViewTrustedMachines" href="apple.stackexchange.com/WebObjects/support.woa/wo/iKK52GLbH8yXxkrGGvN4M/4.4.5.53.7.5.0.447.0.0.1">View</a>
</td>

Une étiquette plus complète :

<tbody>
    <tr>
        <th>Geo</th>
        <td>USA</td>
    </tr>
    <tr>
        <th>Download Queue</th>
        <td>0</td>
    </tr>
    <tr>
        <th>Wish List</th>
        <td>0</td>
    </tr>

    <tr>
        <th>Something else</th>
        <td>
            <a data-auto-test-id="ViewSomethingelse" href="apple.stackexchange.com/WebObjects/support.woa/wo/iKK52GLbH8yXxkrGGvN4M/4.4.5.15.1.7.0.142.0.0.1">View</a>
        </td>
    </tr>

    <tr>
        <th>Trusted Machines</th>
        <td>
            <a data-auto-test-id="ViewTrustedMachines" href="apple.stackexchange.com/WebObjects/support.woa/wo/iKK52GLbH8yXxkrGGvN4M/4.4.5.53.7.5.0.447.0.0.1">View</a>
        </td>
    </tr>

Voici mon clic normal pour l'identification :

tell application "Safari"
    do JavaScript "document.getElementById('ViewTrustedMachines').click();" in tab 1 of window 1
end tell

0 votes

Veuillez vérifier et corriger votre message afin qu'il affiche correctement la partie HTML.

1 votes

Utiliser le sélecteur de requête. Votre vie sera toujours plus facile en js.

0 votes

Il s'agit plutôt d'une question de js, en fait. Voir ma réponse ci-dessous.

2voto

Pirooz Points 486

N'utilisez pas getElementById . C'est un casse-tête et cela ne fonctionne presque jamais pour ce que vous voulez. De plus, aucun de vos éléments n'a d'identifiant, ce qui rend son utilisation inutile. Utilisez plutôt les JavaScripts, beaux et utiles querySelector . Vous pouvez utiliser les sélecteurs CSS pour sélectionner un seul élément et faire ce que vous voulez à partir de là.

L'élément que vous essayez de sélectionner possède un attribut de données unique. L'attribut de données est data-auto-test-id= et le contenu de cet attribut est ViewTrustedMachines Nous pouvons donc le sélectionner simplement avec document.querySelector('a[data-auto-test-id="ViewTrustedMachines"]') . Enfin, nous ajoutons simplement le .click() pour... eh bien... cliquer dessus.

tell application "Safari"
   do JavaScript "document.querySelector('a[data-auto-test-id=\"ViewTrustedMachines\"]').click();"
end tell

Corrigez également votre HTML :

<table>

    <tbody>
        <tr>
            <th>Geo</th>
            <td>USA</td>
        </tr>
        <tr>
            <th>Download Queue</th>
            <td>0</td>
        </tr>
        <tr>
            <th>Wish List</th>
            <td>0</td>
        </tr>

        <tr>
            <th>Something else</th>
            <td>
                <a data-auto-test-id="ViewSomethingelse" href="http://apple.stackexchange.com/WebObjects/support.woa/wo/iKK52GLbH8yXxkrGGvN4M/4.4.5.15.1.7.0.142.0.0.1">View</a>
            </td>
        </tr>

        <tr>
            <th>Trusted Machines</th>
            <td>
                <a data-auto-test-id="ViewTrustedMachines" href="http://apple.stackexchange.com/WebObjects/support.woa/wo/iKK52GLbH8yXxkrGGvN4M/4.4.5.53.7.5.0.447.0.0.1">View</a>
            </td>
        </tr>
        </tbody>
        </table>

Enfin, voici un violon pour le montrer en action.

1 votes

Merci, cela semble bon mais je n'arrive pas à compiler, avant document.querySelector vous devez ajouter do JavaScript " n'est-ce pas ?

0 votes

@Kevin Yep. Corrigé.

0 votes

Les guillemets de @Kevin doivent être échappés. Voir ci-dessus

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X