見出し画像

【いきなりStudio25】(実践編)[UiPath✖YouTube]要素の存在を確認と繰り返し回数、テキストの取得でガチろう~名前の響きなのかその場で検証しない人が使いたがるのがリトライ・スコープ。ガチラーなら繰り返し回数を使う~今回からソース・チューニング始めました( ´∀` )

さてと、前回

で、

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

まではやったので、

で作った

正常系

異常時の対応:エラーハンドリング

を肉付けしてく💃
んだば、早速( ´∀` )


ここまでのソース

正常系

ここでポイント①:手で操作するときに、無意識でやってる確認を盛り込み、確認出来ないなら安全にコカす

の最後で書いた文章を繰り返すけど、
まあ、言われりゃ当たり前なことなんだけど、

人間が普段、無意識でやってる確認も必要

たとえば仮に、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にアクセス

の間でも、

操作はしてないけど
色々、確認してるでしょ( ´∀` )

確認まで、正常系の操作手順に入れると、

  1. EdgeやChromeみたいなブラウザにアタッチ(手で操作あり)

  2. EdgeやChromeみたいなブラウザをアタッチできたか確認する(手で操作なし)

  3. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示(手で操作あり)

  4. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示が表示されたかを確認(手で操作なし)

  5. YouTubeにアクセス(手で操作あり)

  6. YouTubeにアクセス出来たかを確認(手で操作なし)

てな感じで、それでもし確認した結果、どこかのタイミングで上手く出来てないなあだったら、

  1. EdgeやChromeみたいなブラウザにアタッチ(手で操作あり)

  2. EdgeやChromeみたいなブラウザにアタッチできたか確認する(手で操作なし)👉確認後開いてないなら、開きなおす

  3. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示(手で操作あり)

  4. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示が表示されたかを確認(手で操作なし)👉確認後入力されてないなら、入力し直す

  5. YouTubeにアクセス(手で操作あり)

  6. YouTubeにアクセス出来たかを確認(手で操作なし)👉確認後アクセス出来てないなら、アクセスしなおす

で、それでもダメなら

  1. EdgeやChromeみたいなブラウザにアタッチ(手で操作あり)

  2. EdgeやChromeみたいなブラウザにアタッチできたか確認する(手で操作なし)👉確認後開いてないなら、開きなおす。3回やってもダメなら操作をやめる

  3. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示(手で操作あり)

  4. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示が表示されたかを確認(手で操作なし)👉確認後入力されてないなら、入力し直す。3回やってもダメなら操作をやめる

  5. YouTubeにアクセス(手で操作あり)

  6. YouTubeにアクセス出来たかを確認(手で操作なし)👉確認後アクセス出来てないなら、アクセスしなおす。3回やってもダメなら操作をやめる

で、これをただ、プログラミングとかロボットのアクティビティなんかで書き換えるだけ。

  1. EdgeやChromeみたいなブラウザにアタッチ(手で操作あり)=ブラウザにアタッチアクティビティ

  2. EdgeやChromeみたいなブラウザにアタッチできたか確認する(手で操作なし)👉確認後開いてないなら、開きなおす。3回やってもダメなら操作をやめる=要素を確認アクティビティ+繰り返し回数アクティビティ

  3. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示(手で操作あり)=文字を入力アクティビティ

  4. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示が表示されたかを確認(手で操作なし)👉確認後入力されてないなら、入力し直す。3回やってもダメなら操作をやめる=文字を取得アクティビティ+繰り返し回数アクティビティ

  5. YouTubeにアクセス(手で操作あり)=クリックアクティビティ

  6. YouTubeにアクセス出来たかを確認(手で操作なし)👉確認後アクセス出来てないなら、アクセスしなおす。3回やってもダメなら操作をやめる=要素を確認アクティビティ+繰り返し回数アクティビティ

で、それをロボットの場合、

安全にコカすために、開きなおしとかせずに、
👉安全にコカす=異常終了。次の処理をしない
にするだけ。

人間と違って、目視で確認して判断出来ないから、エラーにしてそこで終了するほうが安全( ´∀` )

最初と肉付けした最後の箇条書きをもう1回見比べるだけでも

■正常系

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

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

  3. YouTubeにアクセス

■肉付け後

  1. EdgeやChromeみたいなブラウザにアタッチ(手で操作あり)=ブラウザにアタッチアクティビティ

  2. EdgeやChromeみたいなブラウザにアタッチできたか確認する(手で操作なし)👉確認後開いてないなら、開きなおす。3回やってもダメなら操作をやめる=要素を確認アクティビティ+繰り返し回数アクティビティ

  3. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示(手で操作あり)=文字を入力アクティビティ

  4. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示が表示されたかを確認(手で操作なし)👉確認後入力されてないなら、入力し直す。3回やってもダメなら操作をやめる=文字を取得アクティビティ+繰り返し回数アクティビティ

  5. YouTubeにアクセス(手で操作あり)=クリックアクティビティ

  6. YouTubeにアクセス出来たかを確認(手で操作なし)👉確認後アクセス出来てないなら、アクセスしなおす。3回やってもダメなら操作をやめる=要素を確認アクティビティ+繰り返し回数アクティビティ

まあ、YouTubeにアクセスするだけでも、これだけの操作や確認(実は、タイムアウトなんかのプロパティ設定を入れると他にも配慮することは山ほどある)が必要ってのは分かると思う。

組み込み

確認後、異常があればエラーでコカすので、まずはトライキャッチを追加

コイツを
てな感じではめ込んで

これまでのソースは正常系なので

シーケンスを
てな感じで適当に( ´∀` )
てな感じでこれまでの正常系のソースを
追加したシーケンスの中に移動
アクティビティ名を変えて、注釈を追加( ´∀` )
トライキャッチアクティビティのTryの中に
正常系シーケンスを移動

まだ、Catchが必要エラーが出てるから、今回も想定内のエラーなので

BussinessRuleException

てな感じで、OKをクリック
てな感じで

エラー時も他のこれまでの処理と同様、エラー発生のメッセージをログに書き出すだけにするので~~~

てな感じで追加

で次は、アタッチ後、文字を入力する前に、

Edgeが開いてるかの確認をするので~~~

Edge自体が立ち上がってる画面

確認する箇所は、

Edge固有の部品の要素なら何でも良いんだけど、出来れば次の操作をする部品で関連付けしてる方が、

処理が繋がりやすくていい( ´∀` )

例えば、次の操作がアドレスバーに文字を入力なのに、ホームボタンを確認して、アドレスバーだけ何らかのバグで非活性とか非表示なら意味ないでしょ👀💦
👉実際、そんな組み込み方して、そんな事象が発生し、

あれアタッチ後の確認で、
Edgeは開いてるログまで確認出来たのに、
何で文字の入力後にコケてるんだ
👀💦

ってなったら確認まで入れてエラーハンドリングする意味なし( ´∀` )なので~~~

要素の存在を確認アクティビティ

コイツ
ココに追加
てな感じで要素を指定( ´∀` )

UIExplorerで確認すると、

てな感じで、前回Configファイルへの外出ししたセレクターを全く同じ

ひとつ下のアクティビティのセレクターを同じものに書き換え

コイツな
てな感じを
てな感じで書き換え
ReadYouTubeConfig("Edgeアドレスと検索バー").ToString

で、プロパティの一番下の存在の有無に

ココな

このアクティビティで使う用の変数を新たに作成して、設定

existEdgeAddressBar

にでもしとこうか( ´∀` )

てな感じで
設定出来た
スコープの範囲が狭いので、ReadYouTubeに変更

で、次にIfアクティビティを追加して、

てな感じでさっき作った変数をConditionに

で、

  • 正常=アドレスバーの確認が出来た👉メッセージでログを残して、後続処理へ

  • 異常=アドレスバーの確認が出来ない👉エラーで異常終了

て感じにするので

Then
Else

って感じで組み込み、

てな感じで、条件分岐にブレークポイントを入れて、

ここまでで一度、Main.xamlに戻って、ファイルをデバッグで実行

コイツな
ここで止まってる
Edgeが開いてる

ステップインでこのまま続行してみると

コイツな
ホイ、Edgeの確認が出来た~~~

で、一旦停止して、

左から2番目の停止をクリック

開いてるEdgeを全部閉じて、今度は

ひとつ上の要素を確認アクティビティで
ブレークポイント

ここまで出来たら、さっきと同じでMain.xamlに戻って、続行をファイルをデバッグで実行

ここまで実行出来てる
開いてるEdgeを✕で閉じる

Edgeを全て閉じたら、さっきと同じでステップインすると

てな感じでElseに入り
エラー発生
で、例外をキャッチして、
同じエラーメッセージを出力してること
も確認出来た( ´∀` )

ここでポイント②:確認が1回だけだと、動作不安定なときに却って余計な異常終了が増えるので、繰り返し(指定回数)アクティビティを使う

インターネット回線やEdgeの動作が不安定で開きが遅い場合に、1回だけの確認だと、要素が上手く取得できない可能性があるので~~~

繰り返し(指定回数)アクティビティ

コイツ

を使って、例えば、

3回要素の確認をしても、
ダメな場合はエラーでコカす

みたいな風にやるのが普通。

てな感じにして

再度、ファイルをデバッグで実行

ココまで来たら
開いてるEdgeを×で閉じて、ステップイン
てな感じで2回目
てな感じで3回目

これで、Edgeを開いてないままの状態でステップインすると、、、

もちろん、要素は取得出来てないので、エラー

一歩前へ:セレクターの要素の取得で大事なのは、タイムアウトの設定

もう一回、要素を確認アクティビティに戻って、プロパティを確認してほしいんだけど

ココな

ターゲットの中に、タイムアウト(ミリ秒)って設定値があって、

現在は空欄=初期値

になってる👀タイムアウトが、初期値=デフォルト値の場合、

要素が確認出来るまで30秒待つ

って設定になってるので、今、3回繰り返しの中で

30秒3回=合計90秒待ってる

ことになる。さすがに、Edgeを開いてアドレスバーを確認しようとしてるだけなのに、

90秒待ってもアドレスバーの確認が出来ない

ってことは、

  1. セレクターの要素が変わった

  2. Edge自体が開いてない

  3. それ以外のPCの不具合

の可能性が高いので、繰り返し確認しても確認出来ないなら、さすがに

エラーでコカす方が安全( ´∀` )
👉手で動かして操作する中で
こんな不具合があるときに、
後続の操作を続行する人おらんやろ( ´∀` )

なんで。タイムアウトに関しては、自分で時間を設定できるので別に、

1000=1秒
600000=60秒

にしてもらうことも出来るんだけど、3回繰り返す確認処理とはいえ、10秒なんかにして、結局初期値と同じ30秒だけ待機するなら、

そもそも繰り返し処理をしなくて
良くないか( ´∀` )

になってくるので、

タイムアウトを何秒にするかは、
何をしてる処理で、
何のために設定値を変えようとしてるか

によるって感じ( ´∀` )

ここでポイント③:開発現場だと、リトライスコープを使って

リトライスコープの中に、アプリケーションを開くアクティビティを入れる人を実際の現場で見たことあるんだけど、これって条件によっては、

リトライの回数分、再度ブラウザを開きにいく
👉同じブラウザとか同じ画面を
複数開くことになる
=後続の処理で上手く
セレクターの確認が出来ないことになる

異常終了=バグの原因

になりかねないので、

アプリケーションを開く、ブラウザのアタッチ
はリトライスコープの中に入れない

  • アプリケーションを開く、ブラウザのアタッチの中に、リトライスコープや繰り返し回数アクティビティを入れる

  • リトライスコープや繰り返し回数アクティビティの中に、アプリケーションを開く、ブラウザのアタッチを入れる

では、

似てるようで、全然意味が違うし、
動きが違ってくるから気を付けてね~~~

まあ、実際、組み込んだ後にすぐに検証すれば気づくんだけど、

漫然と頭の中だけでソースを組んで
実際に動かさずにやってる人で、
ブラウザが複数開いちゃう

って人をこれまでの現場で山ほど見てるから( ´∀` )さてと、操作に戻って~~~

次はアドレスバーに文字の入力後、入力出来たかの確認なんで~~~

テキストを取得アクティビティ

コイツ

を使って、

てな感じでセット
てな感じで出力用の変数を新たに追加して
てな感じでスコープを変更しといて
Ifアクティビティを追加

Conditionの詳細エディターを開いて、

てな感じで条件ビルダーを設定>保存をクリック

条件が保存出来たら、ThenとElseにそれぞれ、

Then
Else

で、さっきの要素の確認と同じように、アドレスバーへの文字の入力が1回で上手く入力出来ない可能性もあるので、さっきの繰り返し回数を使って

てな感じで、3回文字を入力して、
取得を繰り返すことも出来るし、
文字を3回入力した後で、
文字の取得も3回繰り返させることも出来る

などなどで変幻自在にできる。

👉そのときの要求によるかな( ´∀` )

ま、今回は

てな感じで、繰り返しの中で
アドレスバーにテキストの入力と取得を
繰り返す感じで( ´∀` )
ブレークポイントを設定して、

で、Main.xamlに戻って、ファイルをデバッグで実行してみると、

ここで止まってる( ´∀` )
アドレスバーに文字の入力出来てる
敢えて、消して

3回繰り返すと、

ハイ、エラー入りました( ´∀` )

てな感じ

後は、YouTubeにアクセス出来た後の確認なんで~~~

Enterキーを押した後で
てな感じで

YouTubeの画面がちゃんと開いているかの確認なので~~

YouTubeが開いているかの確認方法としては、

アドレスバーにYouTubeのアドレスが入っている

これは、文字を入力した直後なんかで元々入力した文字がアドレスバーに残ってるだけでYouTubeがまだ開いたとは限らないから、確認に使わない方が良い。

YouTube側のサーバーの問題でアクセス不可になっていたらどうする❓👀
👉確認の意味なし

なので次に、

ロゴマーク

これは、YouTubeが開いた証明になるけど、さっきもEdgeのときにゆーたと思うけど、出来れば

次に、やりたい処理の部品があるかあるかで確認
した方が後続処理と繋がりが保てる

オイラが次にやりたい処理は、

で書いたとおり、

検索バーに文字を入力

なので、検索バーの確認

ココな

の方が確認しやすい( ´∀` )てか、YouTubeのホーム画面でロゴもだけど、ロゴ以上に

検索バーがないと、
YouTubeの98%の機能は使えないんじゃないか
❓👀💦

ってくらい、

検索バーはホーム画面には必須なので~~~

なので、さっきまで使ってた

要素の存在を確認や
繰り返し(指定回数)アクティビティ

をココでも使って、

てな感じ
<html app='msedge.exe' title='YouTube' />
<webctrl tag='INPUT' placeholder='検索' idx='1' />

で要素を取得したらidx:インデックスは変わる可能性があるので、

<html app='msedge.exe' title='YouTube' />
<webctrl tag='INPUT' placeholder='検索' idx='*' />

てな感じに変更して、左上の検証で

緑になったのを確認出来た( ´∀` )

変数を

existYouTubeReserchBar

みたいにセットして

てな感じで

変数パネルのスコープを

てな感じで、全て広くしとく

で、後は、これまでと同じ感じで、Ifアクティビティを追加して、ThenとElseを、

Then
Else

って感じで、セットするだけ( ´∀` )

てな感じで
ブレークポイントの位置を変更して

全てのEdgeを閉じて、Main.xamlに戻って、ファイルをデバッグで実行

まさかの、3回連続入力( ´∀` )

なので、ここは

てな感じ

繰り返し(指定回数)の中でも、条件式で

アドレスバーに入力した文字と取得した文字が一致した場合は、繰り返しを抜ける=繰り返しを終了するifアクティビティを挟んでみて( ´∀` )

ホイ、ここまで来たので

開いてるYouTubeのホームから他の画面に遷移させて、ステップインして、エラーが起こるかを確認

ハイ、エラーになりました( ´∀` )

と、かなり、

繰り返しを終了アクティビティ

を使うと、きちんと一発で要素の存在が確認出来たときは時間短縮になるので、各繰り返し(指定回数)の中に入れておこう( ´∀` )

てな感じ( ´∀` )
UiPathの現場離れて半年になるので忘れてた( ´∀` )
まあ、でもすぐに思い出すやつ
昔取った杵柄ってヤツ( ´∀` )

で、最後に今度は、普通にブレークポイントを全て外して、Edgeを全て閉じて、実行すると、

コイツな
未だにアドレスバーに3回、
YouTubeのアドレスを入力しに行ってるね( ´∀` )

なので~~~

アドレスバーに文字を入力を繰り返しの外に出して、
文字を取得しても一致しない場合だけ再度、
入力させるように

変更して、再度実行してみると

キレイに全部一回で完了出来た( ´∀` )

ソース・リファクタリング(Configファイルへの外出し込み)

さてと、後は

■リファクタリング前

何がなんだか分からない( ´∀` )

■リファクタリング後(Configファイルへの外出し以外)

大分、見ただけで何をやってるか
分かるようになった( ´∀` )

さてと、次は、Configファイルに外出し~~~

■リファクタリング後(Configファイルへの外出し後)

てな感じかな。

ここでポイント④:繰り返し回数を外出しするときは

てな感じで

元々、

Int:整数型

なので、Config読み込み後、キーの値を.ToStringで文字列に変換した後、
全体を、

CInt

で囲んで、データ型をInt型に変換してあげること。あと、オイラは、Configファイルのキーを

てな感じで

キーの数字と値を一致させてるんだけど、これを単に、

てな感じでやっちゃうと

全部一律に、値に指定した回数しか出来なくて

あるアクティビティの箇所では、5回繰り返したいけど、他のアクティビティでは、3回繰り返しでいい

みたいなときに

使い分けが出来なくて困る
👉全部同じキー名で値を変えると、
全部一気にロボットの振る舞いが変わるので~~
=ロボパがかなり変わってくる( ´∀` )

ので、気を付けてね~~~

てな感じで、予め用意しておくのもひとつ

Configファイルに追加したシートとしては、

テキストシート
エラーメッセージシート
セレクターシート
数字シート

って感じかな( ´∀` )Configファイルへの外出し自体は問題ないんだけど、最後に、これでプロジェクトを実行すると

まだ文字入力のところで空ぶってるみたいなので( ´∀` )

ソース・チューニング(今回から初登場)

まずは、デバッグ解析作業で、

入力した文字の取得する値が何か
が不明なので~~~

てな感じで

文字取得直後に、取得した文字の値を出力させてみる

見ると、、、

Elseで入れた再入力処理が邪魔して、連続書きになってるので~~~

コイツが邪魔なのが分かる( ´∀` )
スッキリさせて再実行( ´∀` )
重複入力は解除できたが、
なぜかYouTube検索バーの確認はせずに
エラー終了してるね👀
てな感じで

確認用のメッセージをログをさらに2つ、条件分岐の前に追加して、どういう状態になるかを試すと

最後の/が入力し切れる前に
https://www.youtube.com
で取得してるから、
齟齬が生じちゃってる( ´∀` )

てことは、

まずはココを完了に
てな感じで
ココも完了に
てな感じ

でも実は改善無し( ´∀` )で、これをよくよく見てみると、実は、

で入力して、Enterしても
最後の/は消える仕組み( ´∀` )
なので~~~
最後の/を敢えての消してみる
1回目:ハイうまくいきました( ´∀` )
2回目:ハイうまくいきました( ´∀` )

なんだけど、これってもしかして、

取得した文字にyoutube.comが、
含まれればいいかどうかだけなんじゃね( ´∀` )

Enter
YouTube来た~~~( ´∀` )

なので、

元に戻す
てな感じに変更
てな感じで
この条件式も変更( ´∀` )
で実行

ついでに面倒くさいので、セレクターを使ってる箇所は全て、

てな感じでCompleteに変えちゃう( ´∀` )

で、実行すると

ハイ、1回目
ホイ、2回目
ホイ、3回目

ダメ押しで3回やったけどエラーなし( ´∀` )
👉チューニング完了💃

ここでポイント⑤:そもそもソース・チューニングって何👀💦❓

まあ、コード・チューニング

と同じ手法なんだけど、ソースの中で、リファクタリングまでは終わって、ロジック的には問題はないはずなんだけど、

デバッグをしながら

  • ロボットのエラー頻度を減らす

  • 処理時間を短縮する

みたいな感じで、

ロボット自体のパフォーマンス(振る舞い)
を改善する作業
👉ロボパ改善作法

今回で言えば、

  1. 入力した文字は間違いがないはずなのに、エラーになる👉ブラウザ側で最後の/を消すので、条件によっては不一致=エラーを減らすためにContainsに条件を変更する

  2. セレクターを使う箇所で、プロセスのCompleteを入れることで動きをスムーズに改善

など

ロボパをより良く改善させる作業
👉ソース・リファクタリングだけでは不可能

て感じかな( ´∀` )

これは、
実際に動かさないと分からないことが多い
👉動的プログラミングに近い

ので、結構、開発チームとテストチームが分かれてるような現在主流な開発セクション分けだと

中々、気づけない作業
👉いくら理論的には問題なくても、
ロボットもシステムも実際に動かしてみないと、
調整=チューニングが出来ない
ことが多い( ´∀` )

実際、今回でゆーと、

最後の/が今のブラウザの仕様だとなくていい
に気づけない
👉youtube.comって文字を含むか
に変えちゃった方が確実

なんざ

動かしながら調整しないと気づけないわ( ´∀` )

ま、ここまで実際にやらないから、

ロボパの悪いロボットで止まってるのが
自称さんではあるんだが( ´∀` )

裏を返すと、ソース・リファクタリングは、

効率の良くソース・チューニングをするため
の前準備

とも言えるけどね( ´∀` )

■ソース・チューニング後

てな感じ

後は、

ココのベタ打ちしてる”youtube.com”を
てな感じで外出しして
にするだけ
getAddressBarText.Contains(ReadYouTubeConfig("Youtubeアドレスキーワード").ToString)

ついでに、Open_EdgeとClose_EdgeもComplete付けとこ💃

てな感じの
てなの
てな感じ

プロパティの値をひとつ変えるってゆーすっげえ簡単な操作なんだけど、それだけで、場合には依るけど、大体

ロボットのエラー発生が確実に減る

って寸法なんで、

ロボパに非常に大きく影響する

のに、

簡単か難しいかだけで判断して、
難しいことしかやろうとしない
👉自称さん

は結構、

完了=Complete

入れるべきところに入れていない

人が多いんだよねえ( ´∀` )
ま、もちろんWEBの操作によっては、

Completeだと、上手く操作出来ない
って場合もある

ので、そこは出された要求の匙加減ではあるけどね( ´∀` )

ここでポイント⑥:さっきからゆーてる準備完了まで待機プロパティのCompleteって何👀❓💦

要は、何かのWEBサイトを開いたときとか、別のWEB画面に遷移したときに、画面が完全に開き切るとか何かの要素が表示され切る

👉次の操作の準備が完了する

まで

次の操作をしないで、ロボットを待機させておく

ってこと。
ま、ここまでのソース・チューニングを見ればイメージは既に湧くとは思うけどね( ´∀` )

もう一歩前へ:基本を書き出せたら、要求に応じて間引く

これまでにやった作業をPPPでもう一回振り返ると、

  1. EdgeやChromeみたいなブラウザを開く(手で操作あり)=ブラウザにアタッチアクティビティ

  2. EdgeやChromeみたいなブラウザを開いたか確認する(手で操作なし)👉確認後開いてないなら、開きなおす。3回やってもダメなら操作をやめる=要素を確認アクティビティ+繰り返し回数アクティビティ

  3. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示(手で操作あり)=文字を入力アクティビティ

  4. URLバーにYouTubeアドレスを入れるか、検索バーにYouTubeって入力して、検索結果を表示が表示されたかを確認(手で操作なし)👉確認後入力されてないなら、入力し直す。3回やってもダメなら操作をやめる=文字を取得アクティビティ+繰り返し回数アクティビティ

  5. YouTubeにアクセス(手で操作あり)=クリックアクティビティ

  6. YouTubeにアクセス出来たかを確認(手で操作なし)👉確認後アクセス出来てないなら、アクセスしなおす。3回やってもダメなら操作をやめる=要素を確認アクティビティ+繰り返し回数アクティビティ

敢えて、太字にした箇所要素の確認アクティビティ+繰り返し回数が少なくとも重なってるし、ただ単に、

YouTubeにアクセスしたいだけ

なんだから、さっき言った

  1. Edgeが開かない

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

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

みたいなトラブルがどこかに介在してるとして、それをブラウザにアタッチした最初の段階で確認しようが、YouTubeにアクセスした後に確認しようが

文字入力まできちんと入力出来たかを確認出来て、YouTubeにアクセス後に要素の確認までやって、確認出来なかった場合に異常終了させれば、

👉YouTubeにアクセスできなかった結果は同じ
=ブラウザにアタッチ出来なかった確認
までは不要な確認

て判断することも出来るよね( ´∀` )

まあ、そこまで厳密に確認が必要かどうか
👉その要件や要求次第。

どこの現場でも最初は要らないってゆーときながら、何かトラブルがあったときに
「エンジニアなら最初の要求になくても、それは、非機能要求で最初から入れとくべき(これは本来的には機能であり、非機能ではないんだが( ´∀` ))」
なんてことをゆーてくる人は多いので~~~

オイラなら安全策で
最初から入れとくけどね( ´∀` )

さてと、次回は、

StudioX時代の記事でやった、

以降の操作を順番に継続するや( ´∀` )

んだば、また来週💃
明日もお休みなので今日は夜更かし( ´∀` )

※existYouTubeReserchBarの綴りを間違えてることに気づいたので、しっかり後からソースの方は修正した( ´∀` )

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