2 votos

¿Cómo puedo ejecutar el script de apple en una determinada instancia de Firefox?

Tengo tres instancias de Firefox llamada -

  1. Firefox
  2. Firefox 2
  3. Firefox 3

Todos ellos viven en la carpeta de Aplicaciones y la diferencia es que ellos tienen diferentes perfiles de Firefox y las cookies.

Me gustaría ejecutar un script de apple que funciona en una determinada instancia de Firefox.

tell application "Firefox"
    activate
    tell application "System Events"
        keystroke "n" using {command down}
    end tell
end tell

tell application "Firefox"
    activate
    tell application "System Events"
        keystroke "l" using {command down}
        keystroke "a" using {command down}
        key code 51
        keystroke "https://google.com"
        key code 36
    end tell
end tell

Si ejecuto esto con Firefox abierto, a continuación, funciona exactamente como lo desea.

Pero, si Firefox está cerrado, pero Firefox 2 o Firefox 3 se abra a continuación, tiene comportamientos extraños.

Sustituirá a la palabra de Firefox con Firefox 2 o Firefox 3 (lo que está abierto y activo) y, a continuación, se ejecutará la secuencia de comandos utilizando la instancia de Firefox que no es lo que quiero.

1voto

user3439894 Puntos 5883

Para probar el ejemplo de AppleScript código, duplicados de Firefox y cambiado el nombre de la copia como Firefox 2.

Este fue el mensaje de texto a bajo macOS Alta Sierra, utilizando diferentes escenarios:

  • Tanto Firefox y Firefox 2 en ejecución, con Firefox empezó primero.
    • Firefox está situada en primer plano.
    • Firefox 2 está situada en primer plano.
  • Tanto Firefox y Firefox 2 en ejecución, con Firefox 2 empezó primero.
    • Firefox está situada en primer plano.
    • Firefox 2 está situada en primer plano.
  • Sólo Firefox 2 en ejecución.

En todos los escenarios contrastados el ejemplo de AppleScript código preformados como quería, Firefox ser el actuar, no de Firefox 2.

Creo que la clave aquí es utilizar el nombre completo de la ruta, por ejemplo "/Applications/Firefox.app" versos sólo "Firefox".

tell application "/Applications/Firefox.app" to activate
delay 1
tell application "System Events"
    keystroke "n" using {command down}
    delay 1
    keystroke "l" using {command down}
    keystroke "a" using {command down}
    key code 51
    keystroke "https://google.com"
    key code 36
end tell

Nota: El uso de la demora de comandos puede ser necesaria entre los eventos donde apropiada, por ejemplo delay 0.5, con el valor de la demora establecido de forma adecuada.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X