Applescript clic en un botón

1

Es posible hacer clic en el botón "detallado" usando AppleScript (Google Chrome)

for = "7cd6f428-1are-41f2-9054-c452d7fe242-view-selector-e5f5de50-634a-45bc-bf30-98e2a64676cc" & gt; Detallado

Usualmente usaría esto para un clic

 "document.getElementsByName('clasenamehere')[0].click();"

pero en esta situación no estoy seguro de cómo proceder

actualización: actualicé mi respuesta porque no me di cuenta de que el editor de texto de askdifferent ocultaba el código

que lo que suelo usar:

tell application "Google Chrome"
    tell tab 4 of window 1 to set myClickingbutton to execute javascript "document.getElementById('Clasenamehere').click();
"
end tell
Kevin
fuente
¿Podría proporcionar una muestra de todo el script?
drivec
ejecute la pestaña 1 de la ventana frontal "document.getElementsByName ('namehere') [0] .click ();"
Kevin
¿Cuál es la URL de la página en la que está intentando accionar el botón, y qué botón es?
user3439894

Respuestas:

1

Entonces, ya conoce el método JavaScript para hacer clic en un elemento HTML utilizando su nombre de clase como selector:

document.getElementsByClassName('classnamehere')[0].click();

dónde [0] indica el primer elemento en la matriz de elementos, todos los cuales comparten el mismo nombre de clase. A menudo, es mejor, al menos en mi mente, tratar de usar un elemento id, que proporciona un atributo único por el cual seleccionar un elemento:

document.getElementById('idnamehere').click();

Para ejecutar este código desde Google Chrome A través de AppleScript, la forma general se ve así:

    set js to "document.getElementsByClassName('classnamehere')[0].click();"

    tell application "Google Chrome" to tell ¬
        the front window to tell ¬
        the active tab to ¬
        set jsResult to execute javascript js

La característica importante sobre execute javascript es que debe ser dirigido a un determinado tab en Google Chrome . No puedes enviar el comando a un window o la application objeto. Asi que:

    tell application "Google Chrome" to ¬
        execute javascript js

lanzará un error (incluso en el supuesto de que haya definido js ).

La sintaxis también puede tomar esta forma:

    tell application "Google Chrome" to tell front window to ¬
        set jsResult to execute of tab 1 javascript js

o esta forma:

    tell application "Google Chrome" to tell front window to ¬
        (execute javascript js) in front tab

En cada uno de estos comandos, la javascript Se le dice que ejecute en una específica tab.

Aún no has especificado que "detallado" se refiere a, y cuando lo haga, puedo actualizar esta respuesta en consecuencia. Trabajando en el supuesto de que es una class nombre o un id de un elemento HTML, puedes usar una de las expresiones en la parte superior y conectarlo directamente en los ejemplos de código que te di. Entonces, podrías usar el método de JavaScript getElementsByClassName, que tomaría esta forma:

document.getElementsByClassName('detailed')[0].click();

dónde [0] podría terminar siendo cambiado a [1], [2], etc. dependiendo de cuantos otros elementos tenga este nombre de clase. Lo que entonces haría sería definir mi variable AppleScript js para mantener el comando de JavaScript para mí:

    set js to "document.getElementsByClassName('detailed')[0].click();"

entonces dile al active tab en Cromo para ejecutarlo:

    tell application "Google Chrome"
        tell active tab of window 1 to ¬
            execute javascript js
    end tell

los execute comando siempre devolverá un valor, incluso si es solo una cadena vacía. Por lo tanto, si lo desea, puede asignar ese valor a una variable en AppleScript para usar más adelante en su script:

    set jsResult to the result

O, más directamente:

    set jsResult to execute javascript js
CJK
fuente
Gracias por la respuesta detallada, actualicé mi pregunta porque no me di cuenta de que el nombre del botón estaba oculto, sin embargo, aprobé su respuesta ya que creo que no hay una solución para mi solicitud debido al nombre encriptado de la parte y también, incluso si Por lo general, hago clic en el trabajo cortado, parece más limpio y apropiado.
Kevin
Gracias. Si estás dispuesto a compartir la URL, podría echar un vistazo y ver si hay una manera de hacerlo.
CJK