Applescript fare clic su un pulsante

1

È possibile fare clic sul pulsante "dettagliato" utilizzando AppleScript (Google Chrome)

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

Solitamente lo uso per un clic

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

ma in questa situazione non sono sicuro di come procedere

aggiornamento: ho aggiornato la mia risposta in quanto non mi ero reso conto che il codice era stato nascosto da askdifferent text editor

quello che uso di solito:

tell application "Google Chrome"
    tell tab 4 of window 1 to set myClickingbutton to execute javascript "document.getElementById('Clasenamehere').click();
"
end tell
    
posta Kevin 23.03.2018 - 14:30
fonte

1 risposta

1

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
    
risposta data 23.03.2018 - 18:18
fonte

Leggi altre domande sui tag