
【いきなりStudio23】(実践編)[UiPath✖YouTube]アタッチでガチろう~PPPこそガチラーが当たり前にやる、ガチりの嗜み( ´∀` )~同じ操作をするにしても、使えるアクティビティはひとつじゃない。
さてと、前回
で、
ライブラリ
まではやったので、今回からいよいよ
以降でやった操作を
Studioでやってく
まずは、
ブラウザにアタッチ
からだね💃
んだば早速
今回から主に使うソースファイル:ReadConfig.xaml

に組み込んでくね( ´∀` )
ここでポイント①:ソースにしろコードにしろ組み込む基本はPPP(疑似コードプログラミング手法)
すげえ昔に書いた
でも書いてるとおり、
ロボットでやる操作は基本、普段人間が手作業でやってる操作をロボットにやらせてるだけなイメージ
👉手で出来る操作以上のことは(出来なくはないが)基本、ロボットでも出来ない(やらない方が良い)
ここをよく
ロボット(やプログラミング)は万能
↓
何でも出来る
(てゆー確証バイアス=ただの思い込み👉妄信)
で、
バグが発生し、障害が多くなり、様々な損失
=コストを増大させる
メリトクラシーな自称さんが集まった組織は多い
👉職人から見たら、ただの素人の集まり( ´∀` )
自分で素人考えで余計な作業を増やしたら、
ロボットでやらせる意味ないじゃーん( ´∀` )
てなことになってる。
で、その原因はなぜか?と言えば大半が、
ロボットに関する妄信(今ゆーた)
自称さんでよくやる自分のスキルへの過信
何か変更や作成を行ったときに、すぐに検証をしないてゆー悪しき習慣
などなど。
じゃあ、対処策は何かあるの?👀
まあ、それはやはりUiPathに限らず、どの開発工程でも言えることだけど
ですげえ昔に書いた、
コンストラクションの基本
前準備(要件定義、設計図を書く)
本処理(組み込む)
後処理(何か作ったらなるべく早く、期待値=想定通りの結果になっているかを検証する)
を
作業ルーティン=作法
として当たり前にやること
よく使われる寓話
設計図を書かずに家の建築を行う設計士は居ないのに、
ソフトウェア開発では、
設計図を書かない設計士ばかり。
何故かと言えば、
アナログではなく、ソフトウェアの世界は簡単だし、モノづくりの分野が違うから、やる必要はないと思い込む人が多いから
上記を回避する組み込む前にやる有効な対策が、
PPP記法:疑似コードプログラミング手法
(Pseudocode Programming Process)
要は、
普段手でやってる操作手順を
まずは、人間の言葉で書き出す
何年経っても、素人でせっかちな自称さんほど、
「そんなことは、プログラミングに慣れていない初心者がやること。」
でやらない。やらない人ほどミスが多いので、試しにやってみてと声掛けしてやらせてみると、
語彙力がないのか、機能とか要件をきちんと理解してないのか、今から実装する操作を言葉できちんと、実装する手順通りに書けない
で、
「じゃあ過去に一回でもこの方法をきちんと学生時代とかにやったことがあるの❓👀」
って聞くと、実は、
「1回もやったことがないし、自分はコードを書くのが専門で、そんなことはプログラマとかエンジニアのやる作業ではない。やる必要はない」
で開き直る( ´∀` )
いや、それならそれでどうぞご自由に~~~
こちらがこれ以上、
世話焼く話じゃないんで( ´∀` )
その結果、5~10年経っても、ミスと障害が多くうだつが上がらない。
きちんと最初に慣れるまでこのやり方を教えてあげると未経験で入った子でも3カ月くらいで慣れるのだが👀💦
エンジニア歴10年以上なのに、3カ月の子に抜かれてるのに、経験年数だけで自称、プロって言ってる自称さんって恥ずかしくないか( ´∀` )まさに、
👉裸の王様
なんかで書いた人がその末路って感じ( ´∀` )
今回やる操作をPPPで書き出してみよう
普段、手でやってるYouTubeを開く操作って、
EdgeやChromeみたいなブラウザにアタッチする
URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示
YouTubeにアクセス
か若しくは、
EdgeやChromeみたいなブラウザにアタッチする
お気に入りなんかに登録してるYouTubeをクリック
YouTubeにアクセス
て感じかな( ´∀` )
操作なの流れとしては、大体こんな感じだけど、
これだけだとあくまでも
インターネットにちゃんと接続が出来ている
ブラウザがちゃんと開く
など、
トラブルが全く発生しない=正常系
人間がやってる最低限の操作を
列挙しただけ( ´∀` )
早速、正常系を組み込んでみよう
■前回までのソース

EdgeやChromeみたいなブラウザにアタッチする
URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示
YouTubeにアクセス
のまずは、
1.EdgeやChromeみたいなブラウザにアタッチする
👉ブラウザにアタッチアクティビティ
これは前回ゆーたとおり、
既に開いてるアクティビティに対する操作で、
ブラウザ自体を開く機能まではない( ´∀` )
ので注意してね







<html app='msedge.exe' title='新しいタブ' />
を、ワイルドカードを使って、titleを変更
<html app='msedge.exe' title='*' />
てな感じにして、左上の検証がオレンジになっているので、


上の強調表示もクリックして、取得したセレクター要素がどこかを確認


きちんと想定通りに取得出来てるのでOK💃
2.URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示
次は検索バーに文字を入力したいので~~~
を組み込み。


ブラウザー内で要素を指定をクリック
今回はアドレスバーに文字を入力するので~~~

で、入力する文字なんだけど、YouTubeのポータルサイトで充分なんで、
https://www.youtube.com/
のURLを


ここまででファイルをデバッグしてみよう💃

Main.xamlに戻って、ファイルをデバッグ



セレクターについては前回やさっきまでと同じ要領で、UIExplorerを開いて、



<wnd app='msedge.exe' cls='Chrome_WidgetWin_1' title='新しいタブ - 個人 - Microsoft Edge' />
<ctrl name='新しいタブ - Microsoft Edge' role='pane' />
<ctrl name='アプリ バー' role='tool bar' />
<ctrl name='アドレスと検索バー' role='editable text' />
てな感じになってるタグを、
<wnd app='msedge.exe' cls='Chrome_WidgetWin_1' title='*' />
<ctrl name='アプリ バー' role='tool bar' />
<ctrl name='アドレスと検索バー' role='editable text' />
に変更して~~~

念のため、再度、ファイルをデバッグしてみて、問題なしを確認出来たので、この次に手でやる操作だと、Enterキーを押せば、YouTubeにアクセスするはずなので~~
ホットキーを押下アクティビティ



ブラウザ内で要素を指定で、

さっきと同じセレクターなので

これでYouTubeにアクセス出来るかを確認のため、Main.xamlに戻って、ファイルをデバッグしてみると、

ここでポイント②:同じ処理結果を得るのに、使えるアクティビティはひとつじゃない
UiPathStudioXの記事とは違うアクティビティを使ってることに気づいてる人も多いと思うんだけど、今回、紹介した
PPP
の流れで、あくまでも人が手でやる操作に忠実にロボットを処理させたかったから👀💦
👉要求とか前提が違うと、
使うアクティビティは違ってくる
=使えるアクティビティはひとつじゃない
ってだけ( ´∀` )
ロボットの実行結果としては
同じなんだけどね~~~
ここでポイント③:ロボットは組み込まれた内容どおりの処理しかしない
まあ、言われりゃ当たり前なことなんだけど、
ロボットには、人間が普段、手でやる操作時に
無意識でやってる確認も組み込む必要あり💃
たとえば仮に、Edgeを使ってYouTubeに普段アクセスしようとして、
Edgeが開かない
インターネットに繋がっていない
YouTubeにアクセスしようとしたけど、YouTube側の問題でYouTube画面が開かない・アクセスできない
って場合に、普段手作業でやってる時って、どうしてる❓👀
Edgeが開かない👉Edgeを開きなおす
インターネットに繋がっていない👉インターネットに繋ぎ直す
YouTubeにアクセスしようとしたけど、YouTube側の問題でYouTube画面が開かない・アクセスできない👉YouTubeにアクセスし直す
のいずれかをやってもダメな場合は、パソコンの再起動とかパソコンやモデムがおかしくないか、会社なら社内ネットワークがおかしくないかなどなど、必ず、
EdgeやChromeみたいなブラウザにアタッチ
URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示
YouTubeにアクセス
の間でも確認してるでしょ( ´∀` )上記でやった操作はあくまでも、エラーとかトラブルを全く考慮してないから正常系な操作のみをやったいわば、
最低限の骨組みだけ
って感じ( ´∀` )なので、実践でソース・リファクタリングとエラー対処方法周りを続けて書こうかなと思ったんだけど、今回のソース・リファクタリングは、
セレクターを含めたConfigファイルへの外出し
がまで、一旦書き上げただけでも長くなったのと、
単独の記事でやっといた方が良いかな( ´∀` )
と判断したので、今回はここまで。
今回の正常系のソースのリファクタリングが終わってから
エラーハンドリングで肉付けをしよう( ´∀` )
んだば、また次回( ´∀` )