AppleScript clicca su Safari th link

-1

In base a questo tag HTML, come posso fare clic su Visualizza da TrustedMachines?

So come farlo da document.getElementById o nome, ma non sono sicuro di come farlo in questi casi

<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 più completo:

<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>

Ecco il mio normale clic per l'id:

tell application "Safari"
    do JavaScript "document.getElementById('ViewTrustedMachines').click();" in tab 1 of window 1
end tell
    
posta Kevin 09.12.2018 - 14:45
fonte

1 risposta

2

Non utilizzare getElementById . È un dolore nella a ** e quasi mai funziona per quello che vuoi. Inoltre, nessuno dei tuoi elementi ha effettivamente l'id, quindi non ha senso utilizzarlo. Usa invece JavaScript bello e utile querySelector . Puoi utilizzare i selettori CSS per selezionare un singolo elemento e fare ciò che vuoi da lì.

L'elemento che stai tentando di selezionare ha un attributo di dati univoco. L'attributo data è data-auto-test-id= e il contenuto di tale attributo è ViewTrustedMachines , quindi possiamo selezionarlo semplicemente con document.querySelector('a[data-auto-test-id="ViewTrustedMachines"]') . Infine aggiungiamo il .click() a ... beh ... cliccalo.

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

Correggi anche il tuo codice 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="/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>
        </tbody>
        </table>

Infine, ecco un violino per mostrarlo in azione.

    
risposta data 09.12.2018 - 15:56
fonte

Leggi altre domande sui tag