カスタム動作を使用して「パスワードを変更して下さい」のアラートを出さずにログインしよう
はじめに
ログイン時などにパスワードを入力すると、Chrome のパスワード漏洩チェックによって警告アラートが表示されます。
この警告アラートはテストツールから操作できない場合が多く、画面上に残り続けることで、後続の操作(クリックや入力)がターゲット要素に届かず、テストが失敗する原因になります。
そこで本チュートリアルでは、Chrome ブラウザ起動時に適用する設定パラメータ(ChromeOptions)をカスタム動作で設定し、不要なアラート表示を抑制する方法を紹介します。
本カスタム動作は、Chrome のパスワード漏洩警告機能をテスト実行時のみ無効化するものです。
本設定は、テスト用サイトおよびテスト用アカウントに限定して使用しています。
本番環境や本番アカウントでは使用しないでください。

本チュートリアルのカスタム動作を使用すると、このようなアラートが表示されないように抑制できます。
もくじ
詳細
プロジェクトの準備には、2つの方法 があります。
いずれか一方を実施してください。
方法①:弊社で作成したカスタム動作をインポートする
サンプルプロジェクトファイルをインポートすることで、必要なプロジェクト構成をすぐに利用できます。
※ プロジェクト内に、実現するためのカスタム動作、テストケース、画面定義が含まれています。
方法②:ユーザー自身でカスタム動作を作成する
カスタム動作 → テストケース → 画面定義 の順に、ユーザー自身で必要な項目を作成していきます。
方法①:弊社で作成したカスタム動作をインポートする
1.サンプルファイルをダウンロードする
以下からファイルのダウンロードを行ってください。(chrome_alert.zip)
https://github.com/valtes-rd/t-dash/releases/tag/T-DASH_tutorial_password_alert
※本サンプルファイルは プロジェクトファイルです。
2.サンプルファイルをインポートする
以下のチュートリアルにそって、プロジェクトの作成とサンプルファイルのインポートを行ってください。
■プロジェクトファイルをインポートしよう
https://service.valtes.co.jp/t-dash/function/tutorial/import_export_projectfiles_vol_001/
プロジェクトファイルはインポートすると、
プロジェクト内のすべての情報がインポートした情報で上書きされます。
必ず、「+プロジェクトを作成」ボタンから新規プロジェクトを作成し、インポートしてください。

3.テストを実行する
サンプルファイルのインポートが完了したら、「方法②」 > 「4.テストを実行する」の手順を行ってください。
方法②:ユーザー自身でカスタム動作を作成する
1.カスタム動作を作成する
プロジェクトを作成したら、まずはカスタム動作を作成していきます。
左メニュー「動作定義」タブ→「カスタム動作」を選択し、「+ 新規カテゴリ作成」をクリックします。

「動作カテゴリキー」、「動作カテゴリ名」を入力して、「色」を指定し、「作成」ボタンをクリックします。
動作カテゴリキーは半角英数字で記載してください。

カテゴリを作成後、「+ カスタム動作を追加」をクリックします。

次に、動作関数を作成します。
画像のように、任意の「動作名」、「動作種類」、任意の「フォーマット」、「説明(設定しなくても可)」を設定します。
今回は「利用変数」は使用しません。

続いて、ライブラリを追加します。
「+ ライブラリを追加する」ボタンをクリックします。

下へスクロールし、「Library」を表示してください。

今回はライブラリを1つ利用します。
「SeleniumLibrary」と入力し、「+」ボタンをクリックしてください。
※「SeleniumLibrary」と入力後、「+」ボタンをクリックすると自動的に「Library SeleniumLibrary」と上部に表示されるのは問題ありません。

Libraryに「Library SeleniumLibrary」が追加されました。
「ライブラリ追加」ダイアログの右上にある「×」をクリックし、ダイアログを閉じます。

「+ ライブラリを追加する」ボタンの横に「SeleniumLibrary」が表示されます。

続いて、スプレッドシートに RobotFrameWork の動作キーワードや値を入力します。
| ① | ${options}= | Evaluate | sys.modules[‘selenium.webdriver’].ChromeOptions() | sys, selenium.webdriver |
| ② | ${arg1}= | Set Variable | –disable-features=PasswordLeakDetection | |
| ③ | ${arg2}= | Set Variable | –disable-features=PasswordCheck | |
| ④ | ${arg3}= | Set Variable | –disable-features=SafetyCheck | |
| ⑤ | Call Method | ${options} | add_argument | ${arg1} |
| ⑥ | Call Method | ${options} | add_argument | ${arg2} |
| ⑦ | Call Method | ${options} | add_argument | ${arg3} |
| ⑧ | Open Browser | https://hotel-example-site.takeyaqa.dev/ja/login.html ※遷移したいURLを入力してください |
chrome | options=${options} |
①行目:ChromeOptions オブジェクトを作成し、後続で「アラート抑制設定」を追加していきます。
②行目:Chrome の Password Leak Detection(パスワード漏洩チェック) 機能を無効化し、ログイン入力時に出る「パスワードが流出した可能性があります」の警告を抑制します。
③行目:Chrome の PasswordCheck 機能を無効化し、ユーザーのパスワードが弱い場合に表示される警告を抑制します。
④行目:Chrome の SafetyCheck(安全性チェック)機能を無効化し、関連するアラートや警告を抑制します。
⑤~⑦行目:先ほど設定した3つの項目を Chrome の起動設定に追加し、警告が表示されない状態でブラウザを開けるようにします。
⑧行目:設定済み ChromeOptions を指定してブラウザを開きます。
遷移したいURLはここに記載します。
このとき、ブラウザは警告アラートを表示しない状態で起動されます。
作成後に右上の「保存する」をクリックします。

2.テストケースを作成する
続いて、テストケースを作成します。

①行目:作成したカスタム動作を呼び出します。
動作カテゴリ上から「Chrome のパスワード漏洩チェックを無効化してブラウザを開く」を選択します。
このとき、「画面のURLをブラウザで開く」等の手順は不要です。
②行目:入力操作「テキストを入力する」を選択して、画面名と要素名(メールアドレス)、設定値(ログインに使用するメールアドレス)を入力します。
③行目:入力操作「テキストを入力する」を選択して、画面名と要素名(パスワード)、設定値(ログインに使用するパスワード)を入力します。
④行目:マウス操作「要素が表示されていたらクリックする」を選択して、画面名と要素名(ログインボタン)を入力します。
作成後に右上の「保存する」ボタンをクリックします。
3.画面定義を作成する
続いて、左メニュー「動作定義」タブから画面定義を作成、要素名と値(XPath)を入力します。

作成後に右上の「保存する」ボタンをクリックします。
4.テストを実行する
「テストスイート」タブに戻り、テストを実行したいテストスイートとテストケースにチェックが入っていることを確認します。
次に、「テスト環境選択」にてテストを実行させるブラウザを選択します。(今回は ChromeOptions を使用しているので、Chrome を選択してください)
最後に、右上の「選択したテストを実行する」をクリックします。

テストが実行されて、成功となりました。
