Sur la base de cette balise HTML, comment puis-je cliquer sur View from TrustedMachines?
Je sais comment le faire de document.getElementById
ou nom mais pas sûr de savoir comment faire cela
<td>
<a data-auto-test-id="ViewTrustedMachines" href="/WebObjects/support.woa/wo/iKK52GLbH8yXxkrGGvN4M/4.4.5.53.7.5.0.447.0.0.1">View</a>
</td>
Tag plus complet:
<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="/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="/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 id:
tell application "Safari"
do JavaScript "document.getElementById('ViewTrustedMachines').click();" in tab 1 of window 1
end tell
Réponses:
Ne pas utiliser
getElementById
. C'est une douleur dans le ** et ne fonctionne presque jamais pour ce que vous voulez. De plus, aucun de vos éléments n’a d’identifiant, il n’est donc pas utile de l’utiliser. Utilisez plutôt des scripts Java beaux et utilesquerySelector
. 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 estViewTrustedMachines
afin que nous puissions le sélectionner simplement avecdocument.querySelector('a[data-auto-test-id="ViewTrustedMachines"]')
. Enfin, nous ajoutons simplement le.click()
pour ... eh bien ... cliquez dessus.Corrigez également votre code HTML:
Finalement, voici un violon pour le montrer en action.
la source