1 votes

Automator Applescript gère de manière incohérente les onglets de Google Chrome

Je veux créer une application Automator qui ferme tous les onglets ouverts dans Google Chrome et charge 3 onglets spécifiques. Elle doit charger ces 3 onglets, que Google Chrome soit déjà utilisé ou non.

Pour ce faire, mon application exécute l'Applescript suivant :

# Close whatever is already open in Chrome
tell application "Google Chrome"
    close every window
end tell

Ensuite, il utilise l'action "Get Specified URLs" pour comprendre la liste des URL que je veux charger comme onglets. Enfin, ces URL sont transmises à l'Applescript suivant pour le chargement :

# input is the list of url's from the previous task
on run {input, parameters}

    # The below is an applescript loop
    repeat with theURL in input
        tell application "Google Chrome" to open location theURL
    end repeat

    # We must return something so we just return the input
    return input

 end run

Lorsque je l'exécute, il fonctionne parfois. D'autres fois, elle ne fait rien (Chrome est en cours d'exécution mais aucune fenêtre ou onglet n'est chargé) ou elle ouvre les 3 nouveaux onglets en même temps que les onglets qui étaient déjà ouverts lorsque l'application a été lancée.

J'ai d'abord pensé qu'il était peut-être affecté par une préférence de navigateur qui indique à Chrome ce que vous souhaitez voir ouvert au démarrage. Au départ, j'avais configuré Chrome pour qu'il ouvre Gmail. J'ai modifié cette préférence pour n'ouvrir qu'un nouvel onglet vierge. Cela n'a pas eu d'incidence sur les résultats (sauf que lorsque l'application s'exécute correctement, un nouvel onglet vide supplémentaire est ouvert, ce qui n'est pas idéal mais ne m'intéresse pas beaucoup).

0 votes

RE : "# We must return something so we just return the input" -- Vous n'avez besoin de retourner quelque chose que s'il y en a une autre. action dans le flux de travail directement après cela Exécuter le Shell script action qui nécessite une contribution ! Cela dit, et sans voir l'ensemble de votre flux de travail mais d'après ce que vous avez montré jusqu'à présent, tout cela pourrait être dans un seul Exécuter AppleScript action .

0 votes

@user3439894 Merci pour cela. Voici l'application complète jusqu'à présent (ou le flux de travail, mais techniquement j'en ai fait une application pour pouvoir l'exécuter en dehors d'Automator). Si le transformer en 1 AppleScript peut aider à résoudre le problème, je serais très ouvert à cette idée.

1voto

user3439894 Points 52496

Si un application est ce que vous voulez, alors ce qui suit exemple AppleScript code peut être sauvegardé comme un AppleScript application sur scriptÉditeur :

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

tell application "Google Chrome"
    activate
    close windows
    set winID to id of (make new window)
    tell window id winID
        set URL of active tab to first item of myURLs
        repeat with i from 2 to (length of myURLs)
            make new tab at end of tabs ¬
                with properties {URL:item i of myURLs}
        end repeat
        set active tab index to 1
    end tell
end tell

0 votes

Cela fonctionne très bien pour moi, merci beaucoup. J'essayais d'utiliser l'Automator pour créer l'application, mais cela fait l'affaire ! Je suppose que je peux aussi réintégrer cela dans l'Automator pour m'aider à ajouter des actions supplémentaires plus tard, si je veux. Je suis toujours un peu curieux de savoir ce qui a causé le comportement bizarre que j'ai rencontré, mais ce n'est pas super important. Cela fonctionne très bien.

0 votes

@Hack-R, Oui, le exemple AppleScript code peut également être incorporé dans un Exécuter AppleScript action dans un Automator flux de travail . Quant à la numéro que vous aviez, sans que je crée un Automator flux de travail pour les tests, je ne peux pas le dire avec certitude, mais je ne pense pas que vous aurez les mêmes résultats. numéro avec mon exemple AppleScript code a utilisé un AppleScript application .

0 votes

C'est bien, merci encore. Vous savez que Automator peut faire applications ainsi que flux de travail n'est-ce pas ? C'est pourquoi j'utilisais ce terme. Mais ce n'est pas important. C'est super.

0voto

wch1zpink Points 6067

Même si une autre réponse a déjà été sélectionnée comme réponse acceptée, il n'est jamais inutile d'examiner d'autres techniques qui donnent les mêmes résultats.

property theURL : {"https://apple.stackexchange.com/questions/tagged/applescript", ¬
    "https://stackexchange.com/", "https://apple.stackexchange.com"}

tell application "Google Chrome"
    activate
    close every window
    tell its (make new window)
        set URL of tab 1 to theURL's item 1
        repeat with i from 2 to count of theURL
            set URL of (make new tab) to theURL's item i
        end repeat
        set active tab index to 1
    end tell
end tell

0 votes

Merci. Je pense que c'est la version que j'avais dans ma question mais si je me trompe, faites-le moi savoir.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X