Estoy intentando escribir un applescript que recorra las Canciones, los Álbumes, los Artistas, los Compositores, los Géneros y vuelva a las Canciones.
No hay nada en el diccionario de applescript con respecto a esto, así que tengo que recurrir a UIscripting/Accesibilidad. Esto es lo que tengo hasta ahora:
tell application "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
Puedes ejecutar esto con el editor script, o preferiblemente para el propósito del resto de esta pregunta, vincularlo a un atajo de teclado e invocarlo mientras estás en iTunes. Cuando se ejecuta esto, se ve el menú emergente de flash en la pantalla, ¿verdad?
Ahora, aquí está la parte interesante: Utiliza el cursor para hacer clic en el botón emergente, muévete hacia abajo y coloca el cursor en Artistas .
El cursor mismo es omitido por la función de captura de pantalla de OS X, pero se puede ver Artistas está en el punto de mira. Ahora pulse Esc para ocultar el menú, e invocar el script mientras el cursor sigue en esta posición.
¡Bam! Ahora has cambiado a Artistas vista. Resulta que la 2ª perform action "AXPress"
se realiza bajo el cursor porque el menú emergente no está enfocado después de pulsar el botón de opción vie.
Hay una forma más sencilla de verificar este problema/error. 1) Haga clic en la opción de ver. 2) Pulse Abajo un par de veces. Es de esperar que el enfoque se mueva a Canciones y luego Álbumes ¿verdad? No, sólo se está moviendo a través de los elementos de la biblioteca en el fondo, todo el tiempo el menú está todavía en la pantalla en el primer plano.
Así que mi pregunta se reduce a, ¿cómo puedo mover el foco del cursor a este menú emergente?
ACTUALIZACIÓN: Gracias @jackjr300 por la respuesta. Esto es lo que mi script terminado parece:
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