À l'origine, il semble que le plan était d'utiliser WinActor sur le terrain, J'avais un contrat pendant un certain temps, mais je n'ai pas pu récupérer l'investissement, j'ai donc réduit tout le budget de RPA, y compris WinActor. En conséquence, nous avons décidé de procéder à la RPA avec un coût nécessaire de 0 yen. Cette fois, j'écrirai sur la lutte pour réaliser le fonctionnement automatique de l'interface graphique.
Il existe différents types d'automatisation des opérations GUI. La première chose à laquelle je suis arrivé était l'authentification d'image à l'aide de pyautogui + opération clavier / souris. Cela fera certainement fonctionner le clavier et la souris, mais Je ne sais pas s'ils font vraiment fonctionner l'écran.
Si vous y ajoutez une authentification d'image, la précision augmentera considérablement. Cependant, cela a aussi ses inconvénients. ・ Lent car l'opération consiste à rechercher l'image spécifiée sur l'affichage à l'écran. ・ Il ne répond pas si l'image d'arrière-plan du bureau est modifiée. ・ L'opération change avec une image à rechercher
J'ai cherché quelque chose de plus stable et je l'ai trouvé. C'est "UI Automation" Rejeté pour les raisons suivantes ・ Je n'aime pas coder personnellement ・ La quantité d'informations est petite (j'ai personnellement senti que ...)
J'y ai recueilli diverses informations et j'y suis arrivé. "Pilote d'application Windows" (WAD car il est long) Voici les raisons de l'adoption -Le codage ressemble au sélénium └ N'importe qui peut l'utiliser s'il se souvient du sélénium. Et vice versa ・ Les informations sont relativement nouvelles et vous pouvez facilement les trouver si vous les recherchez.
Similaire à VB.net, JQuery, etc. C'est un type qui complète la cible et opère en spécifiant l'ID de l'action d'opération et d'autres attributs.
Fondamentalement, cela fonctionnera si vous faites le contenu écrit dans l'URL suivante. https://arakan-pgm-ai.hatenablog.com/entry/2019/08/19/000000
Tout d'abord, l'environnement d'exécution doit disposer des privilèges "mode développeur". Par conséquent, l'option de choisir un PC personnel comme environnement d'exécution a été rapidement éliminée.
J'ai choisi d'utiliser Windows 10 dans un environnement virtuel (Si un environnement virtuel ne peut pas être préparé, un PC qui a été retiré en remplacement d'un PC est également acceptable)
Un autre objectif est d'empêcher les humains d'entrer en concurrence avec des ressources telles que des presse-papiers, des souris et des claviers. Cela facilite également la maintenance.
S'il y a 10 travailleurs, il peut être nécessaire de l'installer sur 10 PC. Si plusieurs travailleurs se rassemblent, certaines personnes peuvent ne pas suivre les précautions. Même s'il n'y a qu'un seul travailleur, il y a diverses choses comme le changement de responsable. Nous prenons la méthode de création et d'exploitation d'un environnement que les travailleurs ne peuvent pas toucher.
Comment exécuter un programme automatisé? C'est le plus simple à utiliser, comme un planificateur de tâches. Il y a différentes mesures ici, alors je reviendrai plus tard.
À mesure que l'automatisation utilisant WAD se généralisera, d'autres programmeurs commenceront à utiliser cet environnement. Ensuite, même ceux qui ne comprennent pas bien commenceront à l'utiliser en imitant l'apparence. Quand cela s'est produit, j'ai fermé l'écran noir ... C'est quelque chose que tu fais Dans ce cas, même si vous définissez le démarrage avec le planificateur de tâches, etc. Il ne bouge pas car WAD est arrêté.
La contre-mesure la plus simple serait de le démarrer de manière à ce que l'écran noir ne soit pas affiché. Le code suivant doit être placé dans Shell: startup
wad.vbs
dim ws
Set ws = CreateObject("Wscript.Shell")
ws.Run """C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe""", 0
Puisqu'il ne peut pas être utilisé, installons l'application à exploiter localement. Comme vous pouvez le voir dans l'outil de recherche GUI, lorsque vous essayez de fonctionner via VNC ou Xen Vous pouvez uniquement obtenir des informations sur la partie campus de l'écran VNC ou Xen.
Utilisez pyperclip pour saisir la chaîne de caractères à saisir dans le presse-papiers Collons en envoyant Ctrl + V dans la zone de texte. Vous pouvez utiliser le mécanisme d'entrée standard, Il se comporte comme toucher le clavier, donc lors de la saisie de longues phrases La vitesse de fonctionnement sera plus lente.
C'est une prémisse Le code ci-dessous fonctionne comme le lancement d'une calculatrice et le complément de l'application de la calculatrice.
desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"
pour cette raison Même si vous spécifiez le chemin d'accès au lot dans desire_caps ["app"], l'application ne peut pas être complétée.
subprocess.Popen(['start',Raccourci du lot PATH], shell=True)
#Certes, l'explorateur aurait dû être bon aussi bien que commencer.
-Modifier la partie suivante du code Python
desired_caps["app"] = "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App"
↓
desired_caps["app"] = "Root"
Cela complète le bureau lui-même.
Si les deux conditions ci-dessus sont remplies L'application portant le titre "●●●" est-elle en cours d'exécution sur le bureau? Vous pourrez le confirmer. Alors ● Attendez une seconde, et si vous ne le trouvez pas, vous pouvez faire une erreur / démarrer, et vous pouvez continuer à travailler.
Vous pouvez également opérer après avoir vérifié la valeur d'attribut de la même manière qu'une zone de texte, etc. Certains sont assez compliqués.
En guise de contre-mesure, Après avoir vérifié le titre du vent Ceci peut être facilement réalisé en le combinant avec l'utilisation du clavier de pyautogui.
Je pense que la plupart des choses peuvent être faites en faisant autant. La prochaine fois, résumons le domaine du fonctionnement automatique du WEB.
Recommended Posts