1 votos

Applescript haga clic en un botón

Es posible hacer clic en el botón "detalle" usando AppleScript (Google chrome)

for="7cd6f428-1are-41f2-9054-c452d7fe242-view-selector-e5f5de50-634a-45bc-bf30-98e2a64676cc">Detailed

Yo normalmente uso este por un clic

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

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

actualización : he actualizado mi respuesta ya que no me di cuenta de que el código estaba oculto por askdifferent editor de texto

que lo que yo suelo usar :

tell application "Google Chrome"
    tell tab 4 of window 1 to set myClickingbutton to execute javascript "document.getElementById('Clasenamehere').click();
"
end tell

2voto

qarma Puntos 71

Así que ya sabes el método de JavaScript para hacer clic en un elemento HTML usando su nombre de la clase como un selector:

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

donde [0] denota el primer elemento de la matriz de elementos, todos los cuales comparten el mismo nombre de la clase. A menudo, es mejor-al menos en mi mente-para probar y utilizar un elemento id, que proporciona un atributo único, por lo que para seleccionar un elemento:

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

Para ejecutar este código de Google Chrome por medio de AppleScript, la forma general se parece a esto:

    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 acerca de la execute javascript es que debe ser dirigida a un determinado tab en Google Chrome. No se puede enviar el comando a un window o de la application objeto. Así:

    tell application "Google Chrome" to ¬
        execute javascript js

se producirá un error (incluso en el supuesto de que se había 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 de esta forma:

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

En cada uno de estos comandos, el javascript se dijo a ejecutar en un determinado tab.

Aún no ha especificado qué "detallada" se refiere, y, al hacerlo, puedo actualizar esta respuesta en consecuencia. Trabajando en la suposición de que es un class nombre o un id de un elemento HTML, puede utilizar una de las expresiones en la parte superior y enchúfelo directamente en el código de los ejemplos que te di. Así, se podría utilizar el método de JavaScript getElementsByClassName, que tendría esta forma:

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

donde [0] podría terminar siendo cambiado a [1], [2], etc. dependiendo de cómo muchos otros elementos que tienen el nombre de la clase. Lo que me gustaría hacer, entonces, es definir mi variable de AppleScript js a celebrar el comando de JavaScript para mí:

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

a continuación, dígale a la active tab en Chrome para ejecutarlo:

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

El execute comando siempre devuelven un valor, incluso si es sólo una cadena vacía. Por lo tanto, si usted desea, puede asignar ese valor a una variable en AppleScript para su uso posterior en la secuencia de comandos:

    set jsResult to the result

O, más directamente:

    set jsResult to execute javascript js

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X