要素がなければ即スキップしたい
お知恵を拝借させてください。
「値の取得」等、ブラウザ関連ライブラリで、要素がなければ即スキップしたいです。
既製ライブラリの組み合わせを工夫すれば、即スキップできるものでしょうか。
「ブラウザ起動」の[待機時間]は1秒にしてあります。
[待機時間]は、こういう仕様です。
以降のシナリオ実行の中で、Webページの要素を検索する時間です。
未設定の場合、10秒となります。
ブラウザの起動完了とか、ページの読み込み完了までの最大待機時間ではないです。
実現したいのは、[待機時間]を1ミリ秒にする相当の工夫と同じ意味だと思ってます。
WinActorの優しさを断りたい場面です。
デジャブ防止用のリンク
どんな手なら、即スキップできるでしょうか。
実際のニーズはこうです。
任意のアクション、XPath、変数名を指定して一気に実行する、自作の汎用ブラウザ操作ライブラリで、
https://winactor.com/questions/question/教わりながら「ブラウザ操作配列のアクションを/
出力したログを確認し、XPathの要素がない場合にスキップまでに1秒かかっていることを掴みました。
表示は手前のパーツで担保するから、要素がなければとっととスキップしちゃってほしい。
思いついてる卑近な案で、ひとまずこれからチューニングを進めるところです。
アクションをブロック毎にまとめておき、ブロックがなければブロックをスキップ
たとえば10アクション入りのブロックがなければ、ブロックごとスキップ
10項目10判断10秒強かかってたのが、単純計算で10項目1判断1秒強になる
ない頻度を踏まえて優先着手
- ◎ 脳内シミュレーションでは一定の効果が見込めるはず
- ▲ 複数個所へのブロック有無キャッチと「分岐」の追加自体は、目的と逆行する延伸のベクトル
- ▲ Excel管理のゆるゆる/らくらくアクションリストの良さが少し制限されちゃう
リストの現状
- 1画面に1シートを割いてる
- 配列で高速に処理できる
- 行の追加削除が自由
- 取り扱う項目の増減は、WinActorなしで人を問わずメンテ可能
「要素数取得」は要素がなければ即ゼロが返されました。
https://winactor.com/questions/?q=Edge (Chromium)の「要素数取得」がfalseになったときの実行時間について
「要素数取得」を使えば「分岐」に繋げやすいのかも。
https://winactor.com/questions/?q=【WA0048】23_ブラウザ関連の「要素数取得」の使い方
スクリプトの構成の工夫でゴールできると判ってるなら、暫定チューニングでなく、初めから構成の工夫に取り掛かっちゃいたいです。
現状のざっくり構成
Select Case アクション
Case 値の取得
Call 値の取得 xpath, value
Case ラジオボタンオンのラベル取得
Call ラジオボタンオンのラベル取得 xpath, valueSub 値の取得(x,v)
先頭で要素数取得のSubを呼び出し
ゼロなら、値の取得を抜ける
ゼロでなければ、通常の値の取得のスクリプトに続くSub ラジオボタンオンのラベル取得(x,v)
先頭で要素数取得のSubを呼び出し
ゼロなら、ラジオボタンオンのラベル取得を抜ける
ゼロでなければ、通常のラジオボタンオンのラベル取得のスクリプトに続くSub 要素数取得(x,v)
構成の工夫
Sub 要素数取得(アクション,XPath,変数)
ゼロなら、以降をスキップ
ゼロでなければ、アクションのSubを実行
- ◎ ブロック有無キャッチと「分岐」相当のコストがほぼゼロになるなら最強
- ◎ Excel管理のゆるゆる/らくらくアクションリストが現状維持なら助かる
- ▲ ゴールできる確信がないから、踏み込むのに勇気が要る
太鼓判や見立てで後押しいただけると勇気が湧きます。
ラジオボタンオンのラベルは、これがベースです。
https://winactor.com/questions/question/chromeのシナリオでtd内にあるラジオボタンオンの値を/