Applescript haga clic en un botón

¿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">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 código estaba oculto por el editor de texto ask different

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
¿Podría proporcionar una muestra de todo el script?
ejecutar la pestaña 1 de la ventana frontal javascript "document.getElementsByName('namehere')[0].click();"
¿Cuál es la URL de la página en la que intenta activar el botón y qué botón es?

Respuestas (1)

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

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

donde [0]se denota 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 opinión, intentar 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, el formulario 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 al respecto execute javascriptes que debe ser dirigido a un sitio específico taben Google Chrome . No puede enviar el comando a un windowo al applicationobjeto. Entonces:

    tell application "Google Chrome" to ¬
        execute javascript js

arrojará 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 este formulario:

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

En cada uno de estos comandos, se javascriptle indica que se ejecute en un archivo tab.

Todavía no ha especificado a qué se refiere "detallado" , y cuando lo haga, puedo actualizar esta respuesta en consecuencia. Suponiendo que se trata de un classnombre o idde un elemento HTML, puede usar una de las expresiones en la parte superior y conectarla directamente a los ejemplos de código que le di. Entonces, podría usar el método JavaScript getElementsByClassName, que tomaría esta forma:

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

donde [0]podría terminar cambiando a [1], [2], etc. dependiendo de cuántos otros elementos tengan este nombre de clase. Lo que haría entonces sería definir mi variable AppleScript jspara que contenga el comando de JavaScript por mí:

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

luego dile a active tabChrome que lo ejecute:

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

El executecomando 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
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 porque creo que no hay solución a mi solicitud debido a la parte del nombre encriptado y también, incluso si mi trabajo generalmente recortado, parece mucho más limpio y apropiado
Gracias. Si está dispuesto a compartir la URL, podría echar un vistazo y ver si hay una manera de hacerlo.
¿Hay algún código para simplemente desplazar/mover el mouse a ese elemento html en lugar de hacer clic? ¡Realmente necesito una forma de mover el mouse al elemento html en lugar de hacer clic! Gracias.
@DuyDuy Debe publicar eso como una pregunta en este sitio. Pero, ¿qué desea lograr al pasar/mover el mouse sobre un elemento html? Eso es lo primero que hay que saber para poder ayudar.
Estimado @CJK, quiero descargar algunas imágenes cuya URL solo aparece cuando paso el mouse sobre algunos botones. (es decir, shopee.ph/… observe que la variación "Negra" del producto está deshabilitada y no se puede hacer clic, cuando pasa el mouse sobre ella, aparece la imagen). Hice uno con Keyboard Maestro pero es lento. Sería perfecto si puedo hacerlo con Java, pero no sé nada sobre Java, por favor deme algunos consejos, ni siquiera sé dónde pegar su script arriba. Muchas gracias