Estoy tratando de escribir algún código de automatización (principalmente en Ruby Selenium). En algún momento, se abre un selector de archivos en Safari para que el usuario pueda seleccionar un archivo para cargar. Selenium no puede manejar esto, pero creo que AppleScript debería poder hacerlo. Soy nuevo en AppleScript y no he podido encontrar ningún código repetitivo de alguien que automatice un cuadro de diálogo de selección de archivos. Estoy leyendo los documentos de AppleScript, pero cualquier idea sería de gran ayuda.Uso de AppleScript para elegir un archivo en Safari
5
A
Respuesta
4
Algunos más penetrante y me encontré con una gran respuesta aquí: Applescript file dialog with UI scripting
Esto es lo que terminé usando:
on run argv
tell application "Safari"
activate
-- Usage check
set argc to count argv
if argc is not greater than 0 then
return "Usage: SafariFileChooser file_name [window_name]"
end if
-- The file we will choose to open
set file_name to item 1 of argv
-- Flip to the named window, if specified
if argc is equal to 2 then
set window_name to item 2 of argv
set flip_count to index of window window_name
repeat (flip_count - 1) times
activate
tell application "System Events" to keystroke "`" using command down
end repeat
end if
-- Interact with the dialog using System Events (thanks mcgrailm)
tell front window
activate
tell application "System Events"
keystroke "g" using {shift down, command down}
keystroke file_name
delay 1
keystroke return
delay 1
keystroke return
end tell
end tell
end tell
return 0
funcionamiento de final
0
Otra opción acabo de descubrir es especificar el directorio usando la línea de comando:
do shell script "defaults write com.apple.Safari NSNavLastRootDirectory /path/to/directory"
De esta manera usted c Haga un poco menos en la creación de secuencias de comandos de interfaz de usuario. Ejecute este comando antes de abrir el selector de archivos y lo ubicará en el directorio especificado. Incluya todos los archivos que necesita en este directorio, y puede simplemente escribir comandos + a para seleccionarlos todos, y regresar.
Cuestiones relacionadas
- 1. Elegir un archivo en Python3
- 2. ¿Cómo escribo en un archivo de texto usando AppleScript?
- 3. NSOpenPanel elegir un directorio (no un archivo)
- 4. ¿Importar métodos de AppleScript en otro AppleScript?
- 5. Compilación de AppleScript desde un archivo fuente de solo texto
- 6. el uso de citas en una cadena de AppleScript
- 7. Elegir una extensión de archivo adecuada para una aplicación
- 8. Descarga un archivo cambiando window.location w/Safari
- 9. applescript para copiar carpetas en Xcode?
- 10. Leer el archivo de texto en la lista en Applescript
- 11. ¿Cómo buscar y analizar un archivo XML con AppleScript?
- 12. Applescript: ¿Cómo abrir un archivo con el programa predeterminado?
- 13. java log4j elegir qué archivo registrar en
- 14. Cómo iniciar/detener el uso compartido de Internet con AppleScript
- 15. Elegir un archivo en Python con simple Dialog
- 16. Safari 6 SVG uso de etiquetas emite
- 17. ¿Cómo cambiar "Elegir archivo" en "Buscar"?
- 18. AppleScript para apuntar aplicación en primer plano
- 19. Comience a cargar después de elegir un archivo, usando jQuery.
- 20. Uso de Powershell para registrar un archivo en el Gac
- 21. Uso de AudioTrack en Android para reproducir un archivo WAV
- 22. Uso de XSLT en línea para un archivo XML
- 23. Uso de dos asteriscos para agregar un archivo en git
- 24. ejecutar applescript en 2x-clic
- 25. Botón para mostrar elegir un archivo para cargar el cuadro de diálogo
- 26. Dile AppleScript para construir XCode Proyecto
- 27. Cómo crear un programa ejecutable desde AppleScript
- 28. ¿Cómo grabar un applescript en Snow Leopard?
- 29. Imprimir en stdout desde osascript/Applescript
- 30. Elegir un analizador Haskell
¿Está intentando decirle a Safari que cargue un archivo específico una vez que el selector de archivos está abierto, o dejar que Safari abra un selector en primer lugar? – Asmus
El primero. Selenium hace clic en un enlace que abre un selector de archivos Safari, luego llamo a mi AppleScript con la ubicación del archivo y estamos bien. Al menos eso espero, a punto de intentarlo. ;) –