Estoy intentando escribir un applecript que recorre cíclicamente canciones, álbumes, artistas, compositores, géneros y de vuelta a las canciones.
NohaynadaenelDiccionariodeApplecriptconrespectoaesto,asíquetengoquerecurriraUIscripting/Accessibility.Estoesloquetengohastaahora:
tellapplication"System Events" to tell process "iTunes"
set frontmost to true -- necessary
delay 1 -- for last line to take effect, delete if you bind this to keyboard shortcut
tell window 1 -- tell window "iTunes" only works when in fullscreen
tell pop up button 2 to perform action "AXPress" -- equivalent of
--keystroke "j" using {command down}
tell UI element 1 of row 5 of table 1 of pop over 1 of pop up button 2 to perform action "AXPress"
-- pressing Genres button, assuming Vies is not in Genres already, of course
end tell
end tell
Puede ejecutar esto con el Editor de secuencias de comandos, o preferiblemente para el resto de esta pregunta, vincularlo a un método abreviado de teclado e invocarlo mientras esté en iTunes. Cuando ejecutas esto, ves el menú emergente parpadeando en tu pantalla, ¿verdad?
Ahora, aquí está la parte interesante: use el cursor para hacer clic en el botón emergente, mover hacia abajo y colocar el cursor en Artistas .
ElcursorensíesomitidoporlafuncióndecapturadepantallaOSX,perosepuedeverqueArtistasestáenfocado.AhorapresioneEscparaocultarelmenúeinvoqueelscriptmientraselcursorestáenestaposición.
Bam!AhorahascambiadoalavistaArtistas.Resultaqueel2%performaction"AXPress"
se realiza bajo el cursor porque el menú emergente no está enfocado después de hacer clic en el botón de opción de vista.
Hay una forma más sencilla de verificar este problema / error. 1) Haga clic en la opción de vista. 2) Presione la tecla Abajo un par de veces. Es de esperar que el enfoque se mueva a Canciones y luego a Álbumes , ¿verdad? No, solo se está moviendo a través de los elementos de la biblioteca en segundo plano, mientras que el menú aún se muestra en primer plano.
Entonces, mi pregunta se reduce a, ¿cómo puedo mover el cursor hacia este menú emergente?
ACTUALIZACIÓN: Gracias @ jackjr300 por la respuesta. Así se ve mi script terminado:
tell application "System Events"
tell process "iTunes"
set frontmost to true
delay 1
tell pop up button 2 of window 1
click
if value of attribute "AXDescription" is "Genres" then
tell (select row 1 of table 1 of pop over 1) to click UI element 1
end if
if value of attribute "AXDescription" is "Songs" then
tell (select row 2 of table 1 of pop over 1) to click UI element 1
end if
if value of attribute "AXDescription" is "Albums" then
tell (select row 3 of table 1 of pop over 1) to click UI element 1
end if
if value of attribute "AXDescription" is "Artists" then
tell (select row 4 of table 1 of pop over 1) to click UI element 1
end if
if value of attribute "AXDescription" is "Composers" then
tell (select row 5 of table 1 of pop over 1) to click UI element 1
end if
end tell
end tell
end tell