RPA

【Selenium IDE】不定期に現れるポップアップを条件分岐で処理

RPA
この記事は約4分で読めます。

とっちゃん@nyanco! です。

今回は「Selenium IDE(セレニウム アイディーイー)」で不定期に現れるポップアップ(モーダルウィンドウ)を条件分岐で処理するプロジェクトのご紹介です。

「Selenium IDE」って何?という方は▼以下の記事をどうぞ。

スポンサーリンク

作成するプロジェクト

今回作るRPAプロジェクトは、ページにアクセスすると不定期で現れるポップアップ(モーダルウィンドウ)を条件分岐で処理してやろうというプロジェクトです。

うざい広告ウィンドウ対策などに使えますね。

動作は簡単に書くと以下となります。

  • 任意のページを開く
  • モーダルウィンドウの数変数に格納
  • 変数の値で条件分岐させる

プロジェクト内容

プロジェクトの完成形は▼こちらです。

以下、コマンドごとに解説していきます。

1.【open】

TargetURLを開きます。

  • 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つある、つまり不定期ウィンドウが表示されているという意味となります。

今回は コマンドechoLogに「popupあり」と表示させる処理としていますが、広告ウィンドウを閉じる処理などが考えられますね。

4.【else 〜 end】

コマンド【if 〜 】からの続きで、else以降は if で指定した条件(${popup} === “1”)ではない場合に行う処理を書きます。

  • Command:else(コマンド)
  • Target:なし
  • Value:なし

今回は コマンドechoLogに「popupなし」と表示させる処理としています。

ちなみに、else ではなく else if とすると別の条件指定ができ、複数条件分岐ができます。ただし、最後はいずれの条件にも当てはまらない場合として必ず else とします。

【end】

コマンド【if】の区切りとしてコマンド【end】を指定。

  • Command:end(コマンド)
  • Target:なし
  • Value:なし

実行結果

今回テストページは用意していませんが、プロジェクトを実行して、不定期ウィンドウがあるならLog「popupあり」、ないなら「popupなし」と表示されていれば成功です!

プロジェクトファイルダウンロード

上記プロジェクトファイル(test-if-modal.side)を下記からダウンロードできます。
(zipファイルに圧縮しているので解凍してください)

良ければダウンロードして動作確認などでご利用ください。

「test-if-modal.zip」をダウンロードする

おわりに

条件分岐、少し難しいですが、使えるようになると「RPA、めちゃくちゃ便利!」と感じれるようになれます!

まずは本記事のような簡単な条件分岐から慣れていくと良いかと!

本記事がどなたかの参考になれば幸いです。

今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧

コメント