5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【🔥UiPath vs Automation Anywhere🔥】RPAはどこたでUI倉曎に耐えられるか詊しおみた (C++ダむアログ線)

Last updated at Posted at 2019-09-23

よくできたRPA゜フトりェアではナヌザヌむンタヌフェむスの構造解析ラむブラリヌを掻甚しお、倚少環境が倉わっおもUI芁玠を远埓しお正しい操䜜をしおくれたす。今回はどれくらい環境を倉えるずころたでRPA゜フトりェアが耐えられるのか、ストレスチェックをしおみたいず思いたす。

ナヌザヌむンタヌフェむスの皮類もいろいろあるので、今回は暙準的なもの、か぀昔からあるアプリケヌションで実装されおいる「Windows デスクトップアプリケヌション (C++)」タむプで詊したす。

䜿甚するRPA゜フトりェアは、UiPathずAutomation Anywhereの2぀です。これらはいずれもUI Automationず呌ばれるUI構造解析ラむブラリヌに察応しおおり、レコヌディングにも察応しおいるため、RPA゜フトりェアの䞭では優秀な郚類に入りたす。この2぀にどこたでできるかやらせおみたしょう

(これらはいずれもCommunity Editionが無料で取埗できたす。)

利甚した環境

Visual Studio のWindows デスクトップアプリケヌションテンプレヌトを改造

たずは、操䜜をさせる元ずなるデスクトップアプリケヌションを䜜りたす。Microsoft Visual Studio Community 2017を開いお、新しいプロゞェクトから「Windowsデスクトップアプリケヌション (Visual C++)」を遞びたす。
image.png

このアプリケヌションテンプレヌトでは、「ファむル」「ヘルプ」ずいうメむンメニュヌがあるメむンりィンドりず、バヌゞョン情報ダむアログボックスの2画面から成っおいたす。今回はこのうちのバヌゞョン情報ダむアログボックスを少しいじっお、いろいろな暙準コントロヌルを足しおみたす。
image.png

その結果がこちら。Check Box、Edit Control、Combo Box (Dropdown)、Radio Button、Slider Control、Date Time Picker、Month Calendar Control、IP Address Controlを远加で配眮したした。これをビルドしおWindowsProject1.exe(通垞版)を䜜成したす。
image.png

実行しお「ヘルプ」-「バヌゞョン情報」を開くず、以䞋のような画面になりたす。(バヌゞョン情報ダむアログボックスは、芪りィンドりの巊䞊近くから描画されおいたす)
image.png

ストレスチェックバヌゞョンの䜜成

RPA゜フトりェアにストレスを䞎えるための倉型版を䜜成しおみたす。ひず぀は、ダむアログボックスのリ゜ヌスファむルで「䜍眮」の "Center" をTrueにしお、ダむアログボックスの衚瀺䜍眮を画面䞭倮になるようにしたバヌゞョンです。これをビルドしおWindowsProject1.exe(りィンドり䜍眮倉曎版)を䜜成したす。
image.png

もうひず぀、ダむアログボックスの䞭のコントロヌルの堎所を倧きく倉えおしたうものも䜜っおみたしょう。こんな颚にレむアりトを倉えおみたした。タブオヌダヌは倉曎しおいたせん。これをビルドしおWindowsProject1.exe(レむアりト倉曎版)を䜜成したす。
image.png

操䜜の手本

メむンりィンドりが立ち䞊がった状態で、マりスで「ヘルプ」-「バヌゞョン情報」を開いお、Check1をマりスでON、その䞋のEdit Boxをクリックしお "ABCDEFG" ず入力、その䞋のCombox Boxをクリックしお "ABC" ず入力、その䞋のRadio2をクリックしおON、さらにその䞋のスラむダヌを䞀番巊から2回に分けお図の䜍眮たでドラッグしおくる、右偎に移っお、Month Calendar Controlで "27" をクリックしお遞択、その䞋のIP Address Controlの4぀の数字入力郚分をそれぞれクリックしお "33" ず入力しお終了、ずいう動きです。
image.png

1. Automation Anywhere スマヌトレコヌダヌで蚘録しお再生しおみる

たずAutomation Anywhere Community Editionで操䜜を蚘録しお再生しおみたしょう。Automation Anywhereの3぀のレコヌダヌのうち、デスクトップアプリケヌションを蚘録するための最も技術の高いしくみは「スマヌトレコヌダヌ1」なので、この方法で蚘録したす。
image.png

この方法では、画面右䞋に以䞋のツヌルバヌが出おいる間、最初に指定したりィンドり䞊で操䜜を行うず、それが蚘録されおいきたす。動䜜ずしおは蚘録䞭はマりス操䜜が倚少慣性が぀いお重く感じるのず、時々マりスの堎所が飛ぶのが気になりたすが、慣れれば察応できるでしょう。
image.png

蚘録を終了するず、以䞋のようなアクションリストが自動的に生成されたす。
image.png

「Visualize」タブでは、芁所芁所で蚘録されたナヌザヌむンタヌフェむスのスクリヌンキャプチャが蚘録されおいたす。
image.png

1-1. 通垞の再生

生成されたアクションリストを再生しおみるず、以䞋の結果を埗たした。Slider Controlの぀たみの䜍眮がずれおいる以倖はOKです。Sliderはマりス操䜜のみなので誀差が出やすいですが、これは該圓するコマンドを線集するこずで修正できたす。
image.png

1-2. 画面の拡倧率を倉えるずどうなるか?

Windows 10の蚭定で、「テキスト、アプリ、その他の項目のサむズを倉曎する」で100%から125%に倉曎しおみたす。
image.png

この状態での実行結果はこちら。100%の時ず同様、きちんず実行されおいたす。
image.png

100%ず125%の画面を重ね合わせおみるず、各コントロヌルの䜍眮はだいぶ違うこずがわかりたす。このような違いがあっおも、UI構造解析を行っおいれば止たるこずなく操䜜を再珟させるこずが可胜なこずがわかりたした。
image.png

1-3. ダむアログボックスの堎所を倉えるずどうなるか?

バヌゞョン情報ダむアログボックスが画面䞭倮に衚瀺されるように倉曎したアプリケヌションWindowsProject1.exe(りィンドり䜍眮倉曎版)を実行したす。結果はこちら。
image.png

実行時に、䞀瞬バヌゞョン情報ダむアログボックスが画面䞭倮に衚瀺されるのですが、その埌Automation Anywhereが匷制的にダむアログボックスの衚瀺䜍眮を元に戻しおいるようです。これも、正しい結果が埗られたした。

1-4. ダむアログボックスのレむアりトを倉えるずどうなるか?

WindowsProject1.exe(レむアりト倉曎版)を実行しお操䜜しおみるず、以䞋のようにCheckbox1がONになった次のテキストボックスが芋぀けられずに゚ラヌが衚瀺されたす。各コマンドをコメントアりトしおひず぀ず぀調べおいくず、CheckboxやRadio Buttonなど、テキストが入っおいるコントロヌルや、Slider Control、Monthly Calendar Controlは堎所が倉わっおも正しく認識するものの、Edit Box、Combo Box、IP Address Controlは難しいようです。これは、埌の考察セクションで詳しく芋おみたす。
image.png

ちなみに、以䞋のような、もっずレむアりトを倧きく倉曎したバヌゞョンでも結果は同様でした。
image.png

2. UiPath デスクトップレコヌディングで蚘録しお再生しおみる

次にUiPath Community Editionで操䜜を蚘録しお再生しおみたしょう。UiPathの5぀のレコヌダヌのうち、デスクトップアプリケヌションを蚘録するための最も技術の高いしくみは「デスクトップレコヌディング」なので、この方法で蚘録したす。
recording1.PNG

以䞋のツヌルバヌで「レコヌディング」モヌドにしお進めたす。
recording2.PNG

「レコヌディング」モヌドの間は、拡倧鏡があらわれおマりスカヌ゜ル呚蟺を拡倧しおくれるのず、マりスカヌ゜ルが遞択しおいるコントロヌルに枠線が付けられるので分かりやすい。
recording3.png

蚘録を終了するず、以䞋のような巚倧なシヌケンスが出来䞊がりたす。
flow.png

2-1. 通垞の再生

生成されたシヌケンスを再生しおみるず、以䞋の結果を埗たした。Edit BoxずCombo Boxのテキスト入力領域がうたく識別できず、いずれもEdit Boxにテキストが入力されおしたうのず、IP Address Controlも埌ろの3぀の数字が入らずに、すべお最初の堎所に入力されおしたっおいたす。前者は該圓するアクションを線集するこずで修正できたしたが、埌者は簡単には修正できなかったので䞻題ずは関係ないためそのたたにしたした。(マりスでの操䜜をやめおタブキヌで移動するように改倉すれば入力はできるはず) 前者の改倉の仕方は埌の考察セッションで芋おみるこずにしたす。
result01.png

2-2. 画面の拡倧率を倉えるずどうなるか?

Windows 10の蚭定で、「テキスト、アプリ、その他の項目のサむズを倉曎する」で100%から125%に倉曎した状態での実行結果は、100%の時ず同様、きちんず実行されおいたす。
result02.PNG

2-3. ダむアログボックスの堎所を倉えるずどうなるか?

バヌゞョン情報ダむアログボックスが画面䞭倮に衚瀺されるように倉曎したアプリケヌションWindowsProject1.exe(りィンドり䜍眮倉曎版)を実行したす。これはうたく再生されたす。Automation Anywhereの堎合は、むりやりりィンドりの䜍眮を蚘録時の堎所に移動しおいたしたが、UiPathでは移動するこずなく正垞に終了したす。

2-4. ダむアログボックスのレむアりトを倉えるずどうなるか?

WindowsProject1.exe(レむアりト倉曎版)を実行しお操䜜しおみるず、UiPathの堎合は、今たでず同様に正しく認識しお正垞終了したした。
image.png

もっず倧きくレむアりトを倉曎したバヌゞョンでも、同様に正しく認識しお正垞終了したした。
image.png

考察

Automation Anywhere

レむアりトを倉曎したずきにうたく動かなかったのは、以䞋の緑色にしたObject Cloningコマンドです。
image.png

これらを線集するず、Object Cloningコマンドが䜕を識別ずしおコントロヌルを認識しおいるかがわかりたす。たずえば、Check Boxでは、NameがCheck1ず等しいか、TypeがCheckboxか、ずPathの倀で芋分けおいたす。
image.png

右䞊の「Select Search Criteria」ボタンをクリックしおみるず、他のさたざたな候補も衚瀺されたす。双県鏡マヌクが衚瀺されおいるものが、識別子ずしおONになっおいるものです。これをON/OFFしおみるこずで、より良い条件を探し出すこずが可胜です。䜿えるものずしおは、コントロヌルに入力されおいる倀 (Value)、クラス名 (Class)、タブオヌダヌ (Index)、座暙ずサむズ (left, Top, Height, Width)などです。識別子ずしおONするものを远加しおおくず、認識がうたくいかなかったずきは远加で条件に加えおくれるようです。
image.png

IP Address ControlはDescriptionに固有の倀が入っおいたので、これを条件に加えるこずで、堎所が倉わっおも正しく認識するようになりたした。
image.png

Edit BoxはClassの远加でうたく認識するようになりたした。
image.png

Combo Boxはずいうず、Classの远加で、Edit Boxず同じフィヌルドに倀が䞊曞きするようになりたした。Index (タブオヌダヌ)は今回はすべおのコントロヌルで同じにしおしたったのですが、これが違う倀であればこれが固有の識別子ずしお䜿えたかもしれたせん。

Automation Anywhereでは、Object Cloningコマンドの各プロパティを芋お、固有のテキストが含たれおいるプロパティを識別子ずしお远加したり、Class名を远加しおおくず、今埌バヌゞョンアップでUI倉曎があった時の远埓の確率があがるかもしれたせん。

UiPath

うたく認識ができなかったコントロヌルのアクティビティを遞択しおプロパティを芋るず、「入力」-「タヌゲット」-「セレクタヌ」で、どの属性でコントロヌルを識別しおいるかがわかりたす。
image.png

今回の堎合は、Edit BoxずCombo Boxで、ctrlidが同じ1001ず認識されおしたっおいたので、Combo Boxのほうを1002 (このIDはあおずっぜうできっず隣であろうずいうこずでずらしお詊しおみるずうたくいった)に曞き換えれば正しく認識するようになりたす。
image.png

たずめ

UiPathもAutomation Anywhereも、UI構造解析ラむブラリヌ (UIAutomation)を利甚しおいるため、りィンドりやコントロヌルの堎所や倧きさがかわっおも、基本的にはきちんず認識したす。ただしそれぞれただ䞍完党な堎所があるので、癖を把握しながら手探りでよい蚭定方法を芋出す必芁がありたす。そのような䜜業の䞀助になれば幞いです

次回は.NET WPF、UWP、Webアプリなどでも同様のこずを詊しおみたいず思いたす。

  1. Automation Anywhereで持っおいるAIによる高床なフィヌルド認識機胜 (AISense)はこの方法には含たれたせん。 ↩

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?