Comment utiliser Applescript pour cliquer sur le bouton Remplacer dans la boîte de dialogue Enregistrer sous Photoshop?

4

J'ai un script Applescript qui clique avec succès sur le bouton Remplacer de la boîte de dialogue Enregistrer sous InDesign , mais le même script ne fonctionne pas dans Photoshop. La commande click dans cette section du script échoue :

tell application "System Events" to tell process activeProcess
    click button "Replace" of sheet 1 of front window
end tell

avec ce message:

Can't get sheet 1 of window 1 of process "Adobe Photoshop CC 2018": invalid index

Voici ce que l'inspecteur d'accessibilité indique pour le bouton Remplacer : entrez la description de l'image ici J'ai essayé diverses méthodes d'identification de la feuille, mais aucune n'a fonctionné. Aucune suggestion?

Pour être précis, voici à quoi ressemble la boîte de dialogue Enregistrer sous lorsque le bouton Remplacer est disponible:

entrez la description de l'image ici

Merci de votre aide!

Sarjo
la source
1
Vous pouvez utiliser Applescript pour automatiser Photoshop ( Adobe Photoshop Scripting ), ce qui serait un meilleur moyen d'automatiser des choses (ou en utilisant Actions ou Javascript). De cette façon, vous vous débarrasserez de ce problème ... - De plus, si vous devez appuyer beaucoup sur les boutons de l'interface graphique ou sélectionner des éléments de menu, Keyboard Maestro est un choix fantastique. En gros, il vous suffit de lui indiquer les éléments de menu ou les boutons sur lesquels vous souhaitez appuyer.
Joonas
1
Merci Joonas. J'ai examiné les scripts Photoshop, mais il s'agit davantage d'actions de script permettant de manipuler l'image elle-même. Cliquer sur le bouton Remplacer est une action système, mais je dois être en mesure de l'identifier dans la hiérarchie de l'interface graphique de Photoshop (comme dans le cas du même script dans InDesign). Je pense que le problème concerne principalement la manière de se référer à la feuille contenant le bouton Remplacer.
Sarjo
Tout d’abord ... pour que tout le monde puisse voir que je ne saurai pas vous dire comment cliquer sur ce bouton avec AppleScript, car j’utilise simplement Keyboard Maestro lorsque cela est nécessaire et mon expérience dans ce domaine avec AppleScript est très limitée. - Je n'ai pas une image complète de ce que vous faites, mais vous pouvez enregistrer des documents via un script, ce qui vous éviterait d'avoir à cliquer sur le bouton Remplacer. Si vous recherchez «options de sauvegarde en jpeg» ou «options de sauvegarde en pdf» dans le fichier PDF de référence applescript, vous trouverez des extraits de code illustrant son fonctionnement. De cette façon, vous n'avez pas besoin d'utiliser AppleScript pour naviguer dans l'interface graphique.
Joonas
Comme je l'ai dit ... Je ne sais pas trop ce que vous faites en plus de sauvegarder l'image, mais utiliser AppleScript pour simuler des pressions sur les boutons me semble un peu en arrière. Aussi, comme je l’ai mentionné (cela ne va peut-être pas aider dans cette situation exacte), AI et PS ont des actions , qui sont essentiellement des macros. Beaucoup de gens partent de là et se tournent vers le script lorsque les actions ne suffisent pas. Les gouttelettes peuvent également être très utiles.
Joonas

Réponses:

3

Cela fonctionne pour moi sur la dernière version de High Sierra et Adobe Photoshop CC 2018 ...

delay 1
tell application "System Events"
    click UI element "Replace" of sheet 1 of window ¬
        "Save As" of application process "Adobe Photoshop CC 2018"
    delay 0.3
    click UI element "Large file size (Fastest saving)" of window ¬
        "PNG Format Options" of application process "Adobe Photoshop CC 2018"
    delay 0.3
    click UI element "OK" of window "PNG Format Options" of ¬
        application process "Adobe Photoshop CC 2018"
end tell

entrez la description de l'image ici

wch1zpink
la source
Merci, wch1zpink. Malheureusement, cela ne fonctionne pas pour moi (sur High Sierra, Photoshop CC 2018). Je reçois ce message:, Can't get window "Save As" of process "Adobe Photoshop CC 2018"si je change window "Save As"de front windowfenêtre, la feuille est trouvée mais la feuille ne l’est pas, et c’est le problème initial. Identifier la feuille semble être le problème.
Sarjo
Mise à jour du code à l'aide de la dernière version d'Adobe Photoshop CC 2018
wch1zpink
OK, cela fonctionne si je l'utilise littéralement, c'est-à-dire en identifiant explicitement "Adobe Photoshop CC 2018". J'essayais de le configurer pour qu'il fonctionne dans les fenêtres "Enregistrer sous" de plusieurs applications en identifiant de manière dynamique l'application active, mais le script qui fonctionnait pour InDesign ne fonctionnerait pas pour Photoshop. Je ne sais pas quel était le problème, mais je me contenterai d'un script distinct qui fonctionne uniquement pour Photoshop. Et merci beaucoup pour votre aide.
Sarjo
@Sarjo Glad je peux aider. Vous pouvez me remercier en votant ma réponse et en la choisissant comme réponse acceptée.
wch1zpink