とっちゃん@nyanco! です。
今回は「Selenium IDE(セレニウム アイディーイー)」で不定期に現れるポップアップ(モーダルウィンドウ)を条件分岐で処理するプロジェクトのご紹介です。
「Selenium IDE」って何?という方は▼以下の記事をどうぞ。
作成するプロジェクト
今回作るRPAプロジェクトは、ページにアクセスすると不定期で現れるポップアップ(モーダルウィンドウ)を条件分岐で処理してやろうというプロジェクトです。
うざい広告ウィンドウ対策などに使えますね。
動作は簡単に書くと以下となります。
- 任意のページを開く
- モーダルウィンドウの数を変数に格納
- 変数の値で条件分岐させる
プロジェクト内容
プロジェクトの完成形は▼こちらです。

以下、コマンドごとに解説していきます。
1.【open】
TargetのURLを開きます。
- Command:open(コマンド)
- Target:https://blog.nyanco.me/data/labo/html/(任意のURL)
- Value:なし
2.【store xpath count】
Targetに不定期に現れるモーダルウィンドウをXPathで指定し、要素が見つかればその数を格納する変数名をValueで定義します。
- Command:store xpath count(コマンド)
- Target:xpath=//div[@class=”modal”](XPathで不定期ウィンドウを指定。例は”modal”というclass名のdivタグ要素)
- Value:popup(任意の変数名)
「Xpath」については▼こちらの記事をどうぞ!
3.【if 〜 】
コマンド【if 〜 else 〜 end】で変数popup の値によって条件分岐させます。
- Command:if(コマンド)
- Target:${popup} === “1”(条件指定:変数popup の値が 1 なら else までの処理を実行する)
- Value:なし
変数popup の値が 1 というのは不定期ウィンドウが1つある、つまり不定期ウィンドウが表示されているという意味となります。
今回は コマンドecho でLogに「popupあり」と表示させる処理としていますが、広告ウィンドウを閉じる処理などが考えられますね。
4.【else 〜 end】
コマンド【if 〜 】からの続きで、else以降は if で指定した条件(${popup} === “1”)ではない場合に行う処理を書きます。
- Command:else(コマンド)
- Target:なし
- Value:なし
今回は コマンドecho でLogに「popupなし」と表示させる処理としています。
ちなみに、else ではなく else if とすると別の条件指定ができ、複数条件分岐ができます。ただし、最後はいずれの条件にも当てはまらない場合として必ず else とします。
【end】
コマンド【if】の区切りとしてコマンド【end】を指定。
- Command:end(コマンド)
- Target:なし
- Value:なし
実行結果
今回テストページは用意していませんが、プロジェクトを実行して、不定期ウィンドウがあるならLogに「popupあり」、ないなら「popupなし」と表示されていれば成功です!
プロジェクトファイルダウンロード
上記プロジェクトファイル(test-if-modal.side)を下記からダウンロードできます。
(zipファイルに圧縮しているので解凍してください)
良ければダウンロードして動作確認などでご利用ください。
おわりに
条件分岐、少し難しいですが、使えるようになると「RPA、めちゃくちゃ便利!」と感じれるようになれます!
まずは本記事のような簡単な条件分岐から慣れていくと良いかと!
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント