見出し画像

【いきなりStudio23】(実践編)[UiPath✖YouTube]アタッチでガチろう~PPPこそガチラーが当たり前にやる、ガチりの嗜み( ´∀` )~同じ操作をするにしても、使えるアクティビティはひとつじゃない。

さてと、前回

で、

ライブラリ

まではやったので、今回からいよいよ

以降でやった操作を

Studioでやってく

まずは、

ブラウザにアタッチ

からだね💃
んだば早速

今回から主に使うソースファイル:ReadConfig.xaml

コイツ

に組み込んでくね( ´∀` )

ここでポイント①:ソースにしろコードにしろ組み込む基本はPPP(疑似コードプログラミング手法)

すげえ昔に書いた

でも書いてるとおり、

ロボットでやる操作は基本、普段人間が手作業でやってる操作をロボットにやらせてるだけなイメージ
👉手で出来る操作以上のことは(出来なくはないが)基本、ロボットでも出来ない(やらない方が良い)
ここをよく

ロボット(やプログラミング)は万能

何でも出来る
(てゆー確証バイアス=ただの思い込み
👉妄信)

で、

バグが発生し、障害が多くなり、様々な損失
=コストを増大させる
メリトクラシーな自称さんが集まった組織は多い
👉職人から見たら、ただの素人の集まり( ´∀` )

自分で素人考えで余計な作業を増やしたら、
ロボットでやらせる意味ないじゃーん( ´∀` )

てなことになってる。

で、その原因はなぜか?と言えば大半が、

  • ロボットに関する妄信(今ゆーた)

  • 自称さんでよくやる自分のスキルへの過信

  • 何か変更や作成を行ったときに、すぐに検証をしないてゆー悪しき習慣

などなど。

じゃあ、対処策は何かあるの?👀

まあ、それはやはりUiPathに限らず、どの開発工程でも言えることだけど

ですげえ昔に書いた、

コンストラクションの基本

  1. 前準備(要件定義、設計図を書く)

  2. 本処理(組み込む)

  3. 後処理(何か作ったらなるべく早く、期待値=想定通りの結果になっているかを検証する)

作業ルーティン=作法
として当たり前にやること

よく使われる寓話

設計図を書かずに家の建築を行う設計士は居ないのに、
ソフトウェア開発では、
設計図を書かない設計士ばかり。

何故かと言えば、

アナログではなく、ソフトウェアの世界は簡単だし、モノづくりの分野が違うから、やる必要はないと思い込む人が多いから
上記を回避する組み込む前にやる有効な対策が、

PPP記法:疑似コードプログラミング手法
(Pseudocode Programming Process)

要は、

普段手でやってる操作手順を
まずは、人間の言葉で書き出す

何年経っても、素人でせっかちな自称さんほど、

「そんなことは、プログラミングに慣れていない初心者がやること。」
でやらない。やらない人ほどミスが多いので、試しにやってみてと声掛けしてやらせてみると、
語彙力がないのか、機能とか要件をきちんと理解してないのか、今から実装する操作を言葉できちんと、実装する手順通りに書けない
で、
「じゃあ過去に一回でもこの方法をきちんと学生時代とかにやったことがあるの❓👀
って聞くと、実は、
「1回もやったことがないし、自分はコードを書くのが専門で、そんなことはプログラマとかエンジニアのやる作業ではない。やる必要はない」
で開き直る( ´∀` )

いや、それならそれでどうぞご自由に~~~
こちらがこれ以上、
世話焼く話じゃないんで( ´∀` )

その結果、5~10年経っても、ミスと障害が多くうだつが上がらない。
きちんと最初に慣れるまでこのやり方を教えてあげると未経験で入った子でも3カ月くらいで慣れるのだが👀💦
エンジニア歴10年以上なのに、3カ月の子に抜かれてるのに、経験年数だけで自称、プロって言ってる自称さんって恥ずかしくないか( ´∀` )まさに、

👉裸の王様

なんかで書いた人がその末路って感じ( ´∀` )

今回やる操作をPPPで書き出してみよう

普段、手でやってるYouTubeを開く操作って、

  1. EdgeやChromeみたいなブラウザにアタッチする

  2. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示

  3. YouTubeにアクセス

か若しくは、

  1. EdgeやChromeみたいなブラウザにアタッチする

  2. お気に入りなんかに登録してるYouTubeをクリック

  3. YouTubeにアクセス

て感じかな( ´∀` )

操作なの流れとしては、大体こんな感じだけど、

これだけだとあくまでも

  • インターネットにちゃんと接続が出来ている

  • ブラウザがちゃんと開く

など、

トラブルが全く発生しない=正常系
人間がやってる最低限の操作を
列挙しただけ( ´∀` )

早速、正常系を組み込んでみよう

■前回までのソース

シンプル( ´∀` )てか、殆どまだ何もやってないからね( ´∀` )
  1. EdgeやChromeみたいなブラウザにアタッチする

  2. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示

  3. YouTubeにアクセス

のまずは、

1.EdgeやChromeみたいなブラウザにアタッチする

👉ブラウザにアタッチアクティビティ

これは前回ゆーたとおり、

既に開いてるアクティビティに対する操作で、
ブラウザ自体を開く機能まではない( ´∀` )
ので注意してね

アクティビティパネルから選んで
てな感じで配置
Edgeを開いといて
画面上でブラウザを指定をクリック
てな感じでブラウザ全体を緑に出来ていたら、クリック
右側のメニューボタン>UIExplorerで開くをクリック
てな感じで前回同様
<html app='msedge.exe' title='新しいタブ' />

を、ワイルドカードを使って、titleを変更

<html app='msedge.exe' title='*' />

てな感じにして、左上の検証がオレンジになっているので、

クリックして、緑に変わるか
ハイ、変わりました( ´∀` )

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

右側の強調表示な
てな感じでブラウザが赤くなっていたら、
きちんと想定通りに取得出来てるのでOK💃

2.URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示

次は検索バーに文字を入力したいので~~~

を組み込み。

この、文字を入力アクティビティを
てな感じで配置して、
ブラウザー内で要素を指定をクリック

今回はアドレスバーに文字を入力するので~~~

てな感じ

で、入力する文字なんだけど、YouTubeのポータルサイトで充分なんで、

https://www.youtube.com/

のURLを

てな感じで入力して、OK
てな感じ

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

ココにブレークポイントを入れておいて

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にアクセスするはずなので~~

ホットキーを押下アクティビティ

コイツを
てな感じで
キーでenterを選ぶ

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

同じくアドレスバーを選んで

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

てな感じで保存

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

ハイ、YouTubeにアクセスできました( ´∀` )

ここでポイント②:同じ処理結果を得るのに、使えるアクティビティはひとつじゃない

UiPathStudioXの記事とは違うアクティビティを使ってることに気づいてる人も多いと思うんだけど、今回、紹介した

PPP

の流れで、あくまでも人が手でやる操作に忠実にロボットを処理させたかったから👀💦

👉要求とか前提が違うと、
使うアクティビティは違ってくる
=使えるアクティビティはひとつじゃない

ってだけ( ´∀` )

ロボットの実行結果としては
同じなんだけどね~~~

ここでポイント③:ロボットは組み込まれた内容どおりの処理しかしない

まあ、言われりゃ当たり前なことなんだけど、

ロボットには、人間が普段、手でやる操作時に
無意識でやってる確認も組み込む必要あり
💃

たとえば仮に、Edgeを使ってYouTubeに普段アクセスしようとして、

  1. Edgeが開かない

  2. インターネットに繋がっていない

  3. YouTubeにアクセスしようとしたけど、YouTube側の問題でYouTube画面が開かない・アクセスできない

って場合に、普段手作業でやってる時って、どうしてる❓👀

  1. Edgeが開かない👉Edgeを開きなおす

  2. インターネットに繋がっていない👉インターネットに繋ぎ直す

  3. YouTubeにアクセスしようとしたけど、YouTube側の問題でYouTube画面が開かない・アクセスできない👉YouTubeにアクセスし直す

のいずれかをやってもダメな場合は、パソコンの再起動とかパソコンやモデムがおかしくないか、会社なら社内ネットワークがおかしくないかなどなど、必ず、

  1. EdgeやChromeみたいなブラウザにアタッチ

  2. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示

  3. YouTubeにアクセス

の間でも確認してるでしょ( ´∀` )上記でやった操作はあくまでも、エラーとかトラブルを全く考慮してないから正常系な操作のみをやったいわば、

最低限の骨組みだけ

って感じ( ´∀` )なので、実践でソース・リファクタリングとエラー対処方法周りを続けて書こうかなと思ったんだけど、今回のソース・リファクタリングは、

セレクターを含めたConfigファイルへの外出し

がまで、一旦書き上げただけでも長くなったのと、

単独の記事でやっといた方が良いかな( ´∀` )

と判断したので、今回はここまで。

今回の正常系のソースのリファクタリングが終わってから
エラーハンドリングで肉付けをしよう( ´∀` )

んだば、また次回( ´∀` )

いいなと思ったら応援しよう!