Quindi conosci già il metodo JavaScript per fare clic su un elemento HTML usando il suo nome di classe come selettore:
document.getElementsByClassName('classnamehere')[0].click();
dove [0]
indicava il primo elemento nella matrice di elementi, i quali condividono lo stesso nome di classe. Spesso, è meglio, almeno nella mia mente, provare e utilizzare id
di un elemento, che fornisce un attributo unico con cui selezionare un elemento:
document.getElementById('idnamehere').click();
Per eseguire questo codice da Google Chrome tramite AppleScript, il modulo generale ha il seguente aspetto:
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
L'importante funzione su execute javascript
è che deve essere indirizzato a uno specifico tab
in Google Chrome . Non è possibile inviare il comando a window
o application
oggetto. Quindi:
tell application "Google Chrome" to ¬
execute javascript js
genererà un errore (anche supponendo che tu abbia definito js
).
La sintassi può anche assumere questo formato:
tell application "Google Chrome" to tell front window to ¬
set jsResult to execute of tab 1 javascript js
o questo modulo:
tell application "Google Chrome" to tell front window to ¬
(execute javascript js) in front tab
In ognuno di questi comandi, viene detto che javascript
deve essere eseguito in uno specifico tab
.
Non hai ancora specificato che cosa "dettagliato" fa riferimento, e quando lo fai, posso aggiornare questa risposta di conseguenza. Partendo dal presupposto che sia un nome class
o un id
di un elemento HTML, puoi usare una delle espressioni nella parte superiore e collegarlo direttamente agli esempi di codice che ti ho fornito. Pertanto, potresti utilizzare il metodo JavaScript getElementsByClassName
, che assumerebbe questo formato:
document.getElementsByClassName('detailed')[0].click();
dove [0]
potrebbe finire per essere modificato in [1]
, [2]
, ecc. a seconda di quanti altri elementi hanno questo nome di classe. Quello che farei allora è definire la mia variabile AppleScript js
per contenere il comando JavaScript per me:
set js to "document.getElementsByClassName('detailed')[0].click();"
quindi dì al active tab
in Chrome per eseguirlo:
tell application "Google Chrome"
tell active tab of window 1 to ¬
execute javascript js
end tell
Il comando execute
restituirà sempre un valore, anche se è solo una stringa vuota. Pertanto, se lo desideri, puoi assegnare quel valore a una variabile in AppleScript da utilizzare successivamente nello script:
set jsResult to the result
O, più direttamente:
set jsResult to execute javascript js