AppleScript haga clic en el enlace de Safari

-1

Según esta etiqueta HTML, ¿cómo puedo hacer clic en Ver desde TrustedMachines?

Sé cómo hacerlo desde document.getElementById o nombre, pero no estoy seguro de cómo hacerlo en estos casos

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

Etiqueta más completa:

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

Aquí está mi clic normal para identificación:

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

1 respuesta

2

No uses getElementById . Es un dolor en el a ** y casi nunca funciona para lo que quieres. Además, ninguno de sus elementos tiene ID, por lo que no tiene sentido usarlo. En su lugar, use JavaScripts hermoso y útil querySelector . Puede utilizar los selectores de CSS para seleccionar un solo elemento y hacer lo que quiera desde allí.

El elemento que está intentando seleccionar tiene un atributo de datos único. El atributo de datos es data-auto-test-id= y el contenido de ese atributo es ViewTrustedMachines , por lo que podemos seleccionarlo simplemente con document.querySelector('a[data-auto-test-id="ViewTrustedMachines"]') . Finalmente, simplemente agregamos .click() a ... bueno ... haz clic en él.

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

También corrige tu 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>

Finalmente, aquí hay un violín para mostrarlo en acción.

    
respondido por el JBis 09.12.2018 - 15:56

Lea otras preguntas en las etiquetas