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