Come posso passare a una scheda aperta in Safari usando osascript?

1

Cercando di cambiare scheda in Safari con osascript . Ho provato più versioni di quanto segue:

osascript -e 'tell Application "Safari"' -e 'keystroke "2" using command down' -e 'end tell

Ho provato a sostituire "Safari" con "Eventi di sistema e" 2 "con" -2 ".Ma niente di ciò che faccio funziona. Qualcuno può dirmi cosa sto facendo male?

    
posta Seamus 04.05.2016 - 08:46
fonte

2 risposte

0

Utilizza il comando key code 19 , perché il comando keystroke "2" simula il codice chiave 84 (tastierino numerico) invece del codice tasto 19.

tell application "System Events" to key code 19 using command down

Per conoscere il codice chiave di una chiave, scarica questa applicazione - > link

Tuttavia, non hai bisogno di GUI Scripting per selezionare una scheda in Safari, usa questo script

tell application "Safari" to tell front window to set current tab to tab 2 -- this select the second tab
    
risposta data 04.05.2016 - 19:38
fonte
1

È System Events che gestisce i tasti .

Nel normale AppleScript il codice dovrebbe essere:

tell application "Safari"
    activate
    delay 0.5
    tell application "System Events"
        key code 19 using command down
    end tell
end tell

Come una riga di comando osascript , sarebbe:

osascript -e 'tell application "Safari" to activate' -e 'delay 0.5' -e 'tell application "System Events" to key code 19 using command down'

La riga di comando osascript dall'alto mostrata sotto come linee multiple per chiarezza:

osascript -e 'tell application "Safari" to activate' \
          -e 'delay 0.5' \
          -e 'tell application "System Events" to key code 19 using command down'

Note: prima di dire Eventi di sistema a tasto , il target del tasto deve avere lo stato attivo. Quindi, per prima cosa, Safari deve essere la finestra in primo piano con activate . Devi quindi concedere un momento affinché abbia lo stato attivo prima della pressione del tasto e ciò viene fatto con delay 0.5 e il valore di delay potrebbe dover essere regolato in secondi e frazioni decimali di ciò. Quindi, quando Safari è la finestra in primo piano, System Events può emettere le sequenze di tasti .

Questo ovviamente presuppone che Safari sia già aperto con almeno una finestra con due schede!

Il tasto usato qui con Safari è una scorciatoia da tastiera di Safari 9 (El Capitan) come mostrato in: Safari 9 (El Capitan): tastiera Safari e altre scorciatoie

Select one of your first nine tabs      Command-1 to Command-9

    
risposta data 04.05.2016 - 11:03
fonte

Leggi altre domande sui tag