Chromeのシナリオでウィンドウ前面化を撤去してみた
Chromeのシナリオで「ウィンドウ前面化」を撤去してみました。
今のところ、作り手にとってメリットが際立ちます。
収穫のお裾分けです。
▲を付けたデメリットも踏まえ、魅力的と感じるでしょうか。
IE以外のブラウザのシナリオでも同じ発想がきっと通じると思います。
落とし穴等、わたしが気づけてなさそうな点があれば、お知らせいただけると幸いです。
「ウィンドウ前面化」の用途
- 操作対象ウィンドウをアクティブに(最前面化)する
- 動く様子を実行/運用者に魅せる
- シナリオの途中から実行(シナリオ作成中やエラーのデバッグ中)
- 起動済み/ログイン済み/画面遷移済みの複数のWebシステムを、状況に応じて再利用(シナリオリリース後のメンテ)
- たとえば、「ウィンドウ前面化」を「例外処理」で囲い、起動済み/ログイン済み/画面遷移済み等をジャッジ
「ウィンドウ前面化」撤去のきっかけ
- Chromeのシナリオで、作成中やエラーのデバッグ中に、手動で複数のWebシステムを開いておくことがある
- ウィンドウ再利用の目的で置いてある「ウィンドウ前面化」は、手動で開いたWebシステムにも反応してしまう
- 実際はWebDriverで開いたウィンドウのみキャッチしたい
- 思い返せば、「ウィンドウ前面化」は主にIEのシナリオを作ってきた名残に過ぎない
- 「画像マッチング」や「エミュレーション」等、ウィンドウ識別ルールの使用箇所も僅かに残っていた
- Chromeのシナリオでは、わざとChromeを最少化しても問題なく動く(きっとChrome以外にも当てはまるはず)
- Chromeのシナリオでは「ウィンドウ前面化」に積極的な意味を持たせてこなかった
- 「ウィンドウ前面化」はある意味惰性で置いていた
- 習慣のつもりが、実際はクセが抜けていなかった格好
「ウィンドウ前面化」の撤去パターン
- 純粋に撤去、ただ削除するだけ
(後続のパーツによっては、例外処理等のグループごと削除) - 純粋な撤去では用をなさなくなる箇所は、「有効無効状態取得」+「変数値設定」で代用
- 「有効無効状態取得」
- そのページに象徴的な要素のXPathを指定
ここのID欄と同じ発想
https://winactor.com/questions/question/webシステムへの確実最速なログイン/ - 1つめのテキストボックスや、//h3[contains(text(),"セクションタイトルの一部")]等
- 「//body」とした箇所も
- そのページに象徴的な要素のXPathを指定
- 「変数値設定」
- 有効無効状態の変数を直後にクリア
- 「有効無効状態取得」
「ウィンドウ前面化」使用箇所の網羅方法
- 検索タブの検索機能(Ver.7系ならフローチャート右上の検索機能)で、「前面化」を部分一致検索
- フローチャートやログで理解しやすいよう、ライブラリのプロパティ画面、名前に「★★★ - ウィンドウ前面化」みたいに、元のライブラリ名を残していたことが吉と出た
「ウィンドウ前面化」をまるっと撤去してみた所感
- 冗長だったパーツの撤去なので、効率と速度が上がった
- ▲ WebDriverでChrome未起動状態の初回実行では、「有効無効状態取得」で5秒ほどもたつく
- 未起動でも2回目以降の実行なら即決してくれる
- 「ブラウザ起動」の待機時間を1秒にしてある恩恵っぽい
- どうやら「ブラウザ起動」を経てない場合の待機時間が5秒程度っぽい
- 未起動でも2回目以降の実行なら即決してくれる
- 「画像マッチング」や「エミュレーション」もほぼ撤去済みのシナリオでは、撤去のメリットが際立つ
- ▲ 動くゲンバが見えないこともある
- 「ウィンドウ前面化」の撤去は、ある程度成熟したシナリオ向けかもしれない
- 動く様子を実行/運用者に魅せたり、システム仕様の変化等でシナリオをメンテ/再リリースする局面では、一時的に前面化の盛り込むか
anothersolution 質問の投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。
新規登録