Power Automate for desktopの"レコーダー"をメッチャ主観で褒めちぎってみる
こんにちは!
出戻りガツオ🐟です。こちらの動画をご覧ください。
PythonでUI Automationを使って、Windowsプログラムの自動化を検証した動画です。
勝手にRPACommunityの企画「Power Automate for desktop 教室 vol.1~きぬあさ先生と生徒あきイカ~」とコラボしたPython Verを作った結果になります🙇
このPythonのコードめっちゃ頑張って、「自分マジ凄いわ🐟」ってなりましたが、実はPower Automate for desktopを使わないとできなかった内容になっています。
活躍したもの、それはPADの「レコーダー」機能です。
ここでPADのレコーダー機能がいかに凄いか!
noteを書かせてください!
UI Automationとは
正直かなり理解が浅いのですが「UI Automationというものを使えば、デスクトップにある要素へアクセスできますよ」という内容です。
ここについて書くと終わらないので割愛します。
ざっくりとした流れ
めっちゃくちゃ割愛して書くとUI Automationのラッパーを生成して
import comtypes
from comtypes import CoCreateInstance
import comtypes.client
from comtypes.gen.UIAutomationClient import *
COM でのオブジェクトの作成
CoCreateInstance という汎用関数を利用
CUIAutomation オブジェクトよりIUIAutomation インターフェイスを公開
DLLとして実装されたCOMサーバを検索
def __init():
global __uia, __root_element
__uia = CoCreateInstance(CUIAutomation._reg_clsid_,
interface=IUIAutomation,
clsctx=comtypes.CLSCTX_INPROC_SERVER)
__root_element = __uia.GetRootElement()
という流れで自動化ができます。自動化テストをPythonでやりたい、というニーズがない限り、ここは読み飛ばしてください。
デスクトップの最上位から「デスクトップの要素」にアクセスし、自動化する準備ができるわけであります。
しかーし!
自動化するためには「Name」か「AutomationId」が必須!!
下準備ができても、要素を指定してコントロールするには、何かしら指定のアクションが必要です。
ここでlearnを見てみると・・・
平たく言うと、NameやAutomationIdといったプロパティを調べることが必要になります。
ですが・・・
これを調べるためにはWindows SDKに付属のInspect.exeツールを使用したりと、またひと手間かかります・・・
ブラウザの自動化は、ブラウザの開発者ツール( [ F12 ]おして出てくる黒い画面)使えば、めちゃ簡単に必要な要素を取得できるのですが、道のりが遠い・・
しかし!!
PADなら!!!
Power Automate for desktopなら!!!!!!!
レコーダー機能で一発でできる!!!!
[ レコーダー ]起動して、クリックするだけ!!!
ここから主役のPower Automate for desktopの出番です!!!
Power Automate for desktop
レコーダー
レコーダーをクリックすると操作の記録が始まります。
請求デモアプリを下記の順番でクリック!
今回やっているのは要素の取得です!
UI 要素をダブルクリックすると属性が一覧化されている!!
請求デモアプリのディスプレイのName属性が「Contoso Invoicing」とここで判明します!
clickするのはあくまでボタンです。ここのIDはautomationIdと一緒!
Idが「btnNew」であることが判明します!
Id(automationId) - "txtName208"
Id(automationId) - "txtDate208"
Id(automationId) - "txtSymptom208"
Id(automationId) - "txtNotes208"
Id(automationId) - "btnSave"
数分も時間をかけずに取得できてる~~~!!!Σ(・□・;)
あとはIdから要素を取得して、値を送り込むだけ!!
Windowsプログラムの自動化がこんなにサクサクできちゃうなんて!!!
( ゚Д゚)!!!!!!!!!!!!!!!
未検証ですがAppiumを使った自動化にも応用できるかと🐟✨
しかし属性(プロパティ)が、こんなリアルタイムでクリック操作でお手軽に隈なく集められちゃうなんて・・・!!!
PAD凄すぎやろ( ゚Д゚)!!!!!!!!!!!!!!!
まだまだ使い辛い部分もあることも事実ですが、コードとの掛け合わせの際に、やりづらいところを補完してくれる機能が豊富なことも「Power Automate for desktop」の魅力じゃないかな✨✨✨って感じました!!
メッチャ褒めちぎり会!これにて閉会でございます🐟✨
- 連日note書いてるけど、いつまで続くかしら・・・💦
今回は登壇ネタでこれを今後話す予定なのでお楽しみに!
Pythonのコードは非公開予定です。しかしlearn見ながら気合入れれば多分書けます!
C#に至ってはサンプルコードあるので、ご存じの方はスグできるかと!
お読みいただき、ありがとうございました🙇🙇🙇
RPACommunity「Power Automate for desktop 教室 vol.1~きぬあさ先生と生徒あきイカ~」
keitaさんのnoteにきっちりまとまっております!
👆検証に使ったアプリのリンクや「きぬあさ先生」、「あきイカさん」の情報もこちらに!!
最近の記事の紹介
最後に!!!
いつもお読みいただきありがとうございます!
ITを使って仕事を楽しくする一助になりたいと思ってますので
お読みいただいた方はぜひTwitterもフォローしてください!
Power PlatformやPythonやExcel、Google Apps Scriptなどなど雑多につぶやきます。よなよなエールが大好きです🍺
リプ、いいね👍、RT大歓迎です!
強く求めてます🐟😂🐟
業務改善フレンズ大歓迎!!切磋琢磨しましょ~♪♪
それではまた今度!ばいば〜い!
この記事が気に入ったらサポートをしてみませんか?