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