0 votos

Automator: Applescript - Abrir un perfil específico de Google Chrome y utilizar la extensión

He estado trasteando pero no consigo resolver esto. ¿Es posible?

Quiero automatizar una tarea en la que sí:

  1. Abrir un perfil específico de Google Chrome.

  2. Ejecutar un comando específico desde una extensión.


He intentado jugar con este script

set myURLs to {"https://www.google.com", ¬
"https://www.news.google.com", ¬
"https://apple.stackexchange.com"}

set myProfiles to {"Default", "Profile 1"}

repeat with aProfile in myProfiles
do shell script "open -na 'Google Chrome' --args --profile-directory=" & aProfile's quoted form
delay 1
tell application "Google Chrome"
    activate
    tell front window
        set URL of active tab to first item of myURLs
        delay 0.5
        repeat with i from 2 to count of myURLs
            make new tab at after (get active tab) with properties {URL:item i of myURLs}
            delay 0.5
        end repeat
        set active tab index to 1
    end tell
end tell
delay 1
end repeat 

Sin embargo, no puedo encontrar la manera de hacer que sólo abra un perfil de cromo.

¿algún consejo?

gracias

\====

Actualización:

¿Alguien? He estado probando con este script:

tell application "Google Chrome"
activate
delay 0.3
end tell        
tell application "System Events"   
tell process "Google Chrome"
    tell group "Extensions"
        tell button "Layout Manager"
            --click
            perform action "A"
        end tell
    end tell
end tell
end tell

Me da un error script (System Events got an error: No se puede obtener el grupo "Extensiones" del proceso "Google Chrome").

"Layout Manager" es el nombre de la extensión y "A" es la acción que quiero activar.

gracias

\===

Sigo trasteando pero no puedo ni abrir el perfil específico. He utilizado:

activate application "Google Chrome"
tell application "System Events"
tell process "Google Chrome"
    click menu item "Profile" of menu 1 of menu bar item "People" of menu bar 1
end tell
open location "http://example.com"
open location "http://anotherexample.com"
end tell

Pero me da: "Los eventos del sistema tienen un error: No se puede obtener el elemento de la barra de menús "Personas" de la barra de menús 1 del proceso "Google Chrome"".

¿Alguien?

\===

Editar:

Así que me las arreglé para ejecutar el perfil de Chrome. Todavía tratando de ejecutar la función de extensión.

Nombre de la extensión: Multi Layout Manager

Enlace: https://chrome.google.com/webstore/detail/multi-layout-manager/ijpiffheldgmdkbaohoilabdnmeinand?hl=en

Con él puedes guardar varias configuraciones del navegador (pestañas, posición, tamaño) y aplicarlas cuando quieras. Quiero que el script haga clic en la extensión y luego en una configuración (Configuración A, Configuración B, etc.) La extensión se fija.

Estoy probando este código que encontré pero mis conocimientos son limitados

tell application "Google Chrome"
activate
delay 0.3
end tell

tell application "System Events"
tell process "Google Chrome"
    tell group "Extensions"
        tell button "Multi Layout Manager"
            click
            --perform action "Setup A"
        end tell
    end tell
end tell
end tell

Me aparece el siguiente mensaje de error: "Los eventos del sistema tienen un error: No se puede obtener el grupo "Extensiones" del proceso "Google Chrome"".

Me parece que no puedo indicarle qué botón debe pulsar.

Sigo utilizando HS (10.13.6) y la versión 92.0.4515.159 de Chrome (compilación oficial) (x86_64)

P.D.: Cuando responda, ¿edito la pregunta principal o pongo una respuesta? Lo siento, soy nuevo aquí.

1voto

user3439894 Puntos 5883

No se trata de responder a todo lo que se plantea en su pregunta, sino sólo de orientarle sobre los puntos mencionados en ella.

La primera bloque de código en su pregunta viene de mi respuesta R: Utilice Apple script para abrir Chrome con un perfil específico y efectivamente hace exactamente lo que está programado para hacer, asumiendo que hay dos perfiles.

Deberías echar un vistazo a mi respuesta R: Crear un comando de terminal para abrir otro perfil de usuario en chrome ya que muestra lo básico comando para abrir Google Chrome a un perfil específico. Que comando también se utiliza en el do shell script comando en el código de la otra respuesta, el código que muestra en la pregunta.

Así que, para abrir Google Chrome a un determinado perfil el código está ahí, justo delante de ti:

do shell script "open -na 'Google Chrome' --args --profile-directory=" & aProfile's quoted form

Donde aProfile's quoted form está en el lista {"Default", "Profile 1"} Así que para apuntar a uno solo perfil Por ejemplo,..:

set myProfile to "Profile 1"
do shell script "open -na 'Google Chrome' --args --profile-directory=" & myProfile's quoted form

En cuanto a algunos de sus otros código intentos, aquí hay un ejemplo de cómo haría clic en un elemento del menú de la Perfiles menú en Google Chrome .

Ejemplo AppleScript código :

tell application "Google Chrome" to activate

delay 0.25

tell application "System Events" to ¬
    click ¬
        menu item "Edit…" of ¬
        menu "Profiles" of ¬
        menu bar item "Profiles" of ¬
        menu bar 1 of ¬
        application process "Google Chrome"

En el ejemplo AppleScript código que reemplazarías "Edit… con entonces el nombre de la perfil que desea, como se muestra en el Perfiles menú .

Para subir el Extensiones sería:

Ejemplo AppleScript código :

tell application "Google Chrome" to activate

delay 0.25

tell application "System Events" to ¬
    click ¬
        menu item "Extensions" of ¬
        menu "Window" of ¬
        menu bar item "Window" of ¬
        menu bar 1 of ¬
        application process "Google Chrome"

No se trata de abrumar, sin embargo, si usted necesita para hacer clic en varios de primer nivel elementos del menú en el mismo script probablemente sea mejor implementarlo como un manipulador Por ejemplo,..:

Ejemplo AppleScript código :

my clickApplicationMenuCommand("Google Chrome", "Profiles", "Edit…")

my clickApplicationMenuCommand("Google Chrome", "Window", "Extensions")

--  ## Handler ##

to clickApplicationMenuCommand(appName, appMenuName, appMenuCommand)
    tell application appName to activate
    delay 0.25
    tell application "System Events" to ¬
        click menu item appMenuCommand of ¬
            menu appMenuName of menu bar item appMenuName of ¬
            menu bar 1 of application process appName
end clickApplicationMenuCommand

Se colocaría el manipulador en la parte inferior de su script y luego simplemente haga clic en un nivel superior elemento del menú como se muestra en los dos ejemplos de llamada al manipulador .


Actualización para abordar Gestor de multidisposiciones extensión

La información anterior fue probada en MacOS Catalina ya que en ese momento no se sabía qué versión de MacOS el OP estaba usando.

Esta actualización para abordar la activación de un Diseño de la Gestor de multidisposiciones extensión en Google Chrome cuando el extensión mismo es rooteado a la Barra de herramientas .

Una vez instalado el Gestor de multidisposiciones extensión en Google Chrome en MacOS High Sierra y la comprobación de la Elemento de la interfaz de usuario estructura jerárquica de objetos por ejemplo Configuración A y al examinarlo más de cerca, no pude pasar de cierto punto en él. Por lo tanto, decidí dejar de perder el tiempo y volver a la fea forma de Guiones de interfaz de usuario .

Tenga en cuenta que Guiones de interfaz de usuario es a menudo kludgy y propensos a fracasar por una serie de razones diferentes, que no voy a enumerar aquí.

Lo siguiente ejemplo AppleScript código se supone que Google Chrome ya está en marcha y el deseado Perfil está activo.

Ejemplo AppleScript código :

tell application "Google Chrome" to activate

delay 0.25

tell application "System Events"
    click ¬
        pop up button "Multi Layout Manager" of ¬
        toolbar 1 of group 1 of window 1 of ¬
        application process "Chrome"

    delay 0.25

    repeat 3 times
        key code 48 -- # tab key
        delay 0.2
    end repeat
    key code 36 -- # enter key

end tell

Notas:

Como se codifica con el repeat bucle , se desencadenó la primera Diseño para activar el segundo Diseño el repeat bucle tendría que incrementarse en 1 y así sucesivamente.


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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