0

お知恵を拝借させてください。
「値の取得」等、ブラウザ関連ライブラリで、要素がなければ即スキップしたいです。
既製ライブラリの組み合わせを工夫すれば、即スキップできるものでしょうか。

 

「ブラウザ起動」の[待機時間]は1秒にしてあります。
[待機時間]は、こういう仕様です。

以降のシナリオ実行の中で、Webページの要素を検索する時間です。
未設定の場合、10秒となります。

ブラウザの起動完了とか、ページの読み込み完了までの最大待機時間ではないです。
実現したいのは、[待機時間]を1ミリ秒にする相当の工夫と同じ意味だと思ってます。
WinActorの優しさを断りたい場面です。

 

デジャブ防止用のリンク

https://winactor.com/questions/?q=ブラウザ起動+待機時間

 

どんな手なら、即スキップできるでしょうか。

 

 

実際のニーズはこうです。

任意のアクション、XPath、変数名を指定して一気に実行する、自作の汎用ブラウザ操作ライブラリで、

https://winactor.com/questions/question/教わりながら「ブラウザ操作配列のアクションを/

出力したログを確認し、XPathの要素がない場合にスキップまでに1秒かかっていることを掴みました。

https://winactor.com/questions/question/進捗をビジュアル化したい/

表示は手前のパーツで担保するから、要素がなければとっととスキップしちゃってほしい

 

思いついてる卑近な案で、ひとまずこれからチューニングを進めるところです。

アクションをブロック毎にまとめておき、ブロックがなければブロックをスキップ

たとえば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, value

Sub 値の取得(x,v)
 先頭で要素数取得のSubを呼び出し
  ゼロなら、値の取得を抜ける
  ゼロでなければ、通常の値の取得のスクリプトに続く

Sub ラジオボタンオンのラベル取得(x,v)
 先頭で要素数取得のSubを呼び出し
  ゼロなら、ラジオボタンオンのラベル取得を抜ける
  ゼロでなければ、通常のラジオボタンオンのラベル取得のスクリプトに続く

Sub 要素数取得(x,v)

構成の工夫

Sub 要素数取得(アクション,XPath,変数)
 ゼロなら、以降をスキップ
 ゼロでなければ、アクションのSubを実行

  • ◎ ブロック有無キャッチと「分岐」相当のコストがほぼゼロになるなら最強
  • ◎ Excel管理のゆるゆる/らくらくアクションリストが現状維持なら助かる
  • ▲ ゴールできる確信がないから、踏み込むのに勇気が要る

太鼓判や見立てで後押しいただけると勇気が湧きます。

 

ラジオボタンオンのラベルは、これがベースです。

https://winactor.com/questions/question/chromeのシナリオでtd内にあるラジオボタンオンの値を/

この質問は解決済みのためクローズされています。
anothersolution ベストアンサーとして選択しました
回答とコメントは、会員登録(無料)で閲覧できるようになります。