1 votes

Que signifie l'erreur errAEWrongNumberArgs lors de l'exécution d'AppleScript?

J'ai copié un script que j'ai trouvé en ligne, mais il ne se lancera pas. L'erreur que je reçois est

Opérateur logique NON utilisé avec autre chose qu'un terme (errAEWrongNumberArgs:-1721)

Voici le script.

on run {input, parameters}

-- Mettre Screenflick au premier plan
tell application "Screenflick" to activate

-- Commencer un enregistrement
tell application "System Events"
    tell process "Screenflick"
        -- Ouvrir la vue Enregistrement
        click menu item "Enregistrement" of menu "Fenêtre" of menu bar 1
        -- Définir le minuteur d'enregistrement
        tell window "Screenflick"
            -- Désactiver le minuteur
            tell checkbox "Définir le minuteur"
                if (its value as boolean) then click it
            end tell
            -- Activer le minuteur
            click checkbox "Définir le minuteur"
            tell sheet 1
                set value of text field 1 to "0" -- heures
                set value of text field 2 to "0" -- minutes
                set value of text field 3 to "10" -- secondes
                keystroke return
            end tell
        end tell            
        -- Démarrer l'enregistrement (Ouvrir l'écran de sélection)
        click menu item "Démarrer l'enregistrement" of menu "Enregistrer" of menu bar 1    
        delay 1
        -- Définir la zone d'écran à enregistrer
        tell window "Fenêtre de sélection"
            perform action "AXRaise" -- rend la fenêtre la plus en avant
            tell pop up button "Type de sélection"
                click -- Afficher le menu
                click menu item "Taille fixe" of menu 1
            end tell    
            -- Définir la gauche / bas de la zone sélectionnée en points d'écran globaux
            -- Doit définir les valeurs en chaînes de caractères, pas en entiers
            set value of text field "Gauche" to "100"
            set value of text field "Bas" to "100"
            -- Déclenche Screenflick pour utiliser ces valeurs
            -- (confirmer uniquement l'une des valeurs est suffisant)
            perform action "AXConfirm" of text field "Gauche"
            -- Définir la largeur et la hauteur de la zone d'enregistrement
            set value of text field "Largeur" to "800"
            set value of text field "Hauteur" to "600"
            perform action "AXConfirm" of text field "Largeur"
        end tell
        -- Maintenant démarrer l'enregistrement
        click button "Enregistrer" of window "Fenêtre de sélection"
    end tell        
end tell
return input

end run

Comment puis-je comprendre ce code d'erreur?

0 votes

Par curiosité, quelle est la valeur de la variable input ? Pour discerner cela, insérez la ligne return input directement après on run {input, parameters}.

2voto

Oskar Points 1242

Avec un script aussi long, vous avez deux options pour cerner, comprendre et ensuite résoudre une erreur (ou découvrir la prochaine erreur) :

  1. Utilisez un débogueur pour parcourir le code et identifier la ligne contenant l'erreur parmi les 40 lignes, et examinez la valeur des erreurs et la syntaxe de la commande qui est exécutée ou provoque l'erreur
  2. Utilisez le concept de exemple minimal, complet et reproductible - où vous supprimerez le code partie par partie logiquement jusqu'à ce que vous ayez la plus petite quantité de code produisant les erreurs. Dans ce cas, supprimez (ou mettez en commentaire) tous les délais, toutes les boucles internes et gardez seulement quelques lignes de code à déboguer.

Pour le débogueur, l'outil Apple est à peine suffisant - donc je vous conseille de vous tourner vers quelque chose comme https://latenightsw.com/ Script Debugger qui propose une version d'essai complète, suivie d'une version payante offrant les fonctionnalités parfaitement adaptées à vos besoins. N'achetez l'outil que si vous êtes sûr de tirer profit d'un gain de temps pour vos besoins en automatisation et en script. Pour ma part, j'ai très rapidement récupéré le temps investi.

Pour moi, la visualisation des variables et le débogueur pas à pas sont des atouts majeurs, mais l'Explorateur de dictionnaire est également très puissant, tout comme la complétion de code et les autres fonctionnalités superbement conçues dans l'éditeur et l'application.

1 votes

Le message d'erreur n'est pas très utile, mais ce script a été écrit pour l'action Exécuter AppleScript de l'application Automator. Le gestionnaire "run" dans un script régulier n'est pas configuré pour ces paramètres, mais 5 ans plus tard, Script Debugger vaut toujours la peine d'être possédé.

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