変数、エコー、アラート、ポップアップ処理を保存します。 Selenium IDE
⚡ スマートサマリー
コマンドを保存する Selenium IDEは実行時の値を名前付き変数に保存し、echoコマンドでログに出力します。また、専用のコマンド群がアラート、確認ダイアログ、複数のブラウザウィンドウ間の切り替えを処理します。
このチュートリアルでは、ストアコマンド、エコーコマンド、アラートとポップアップの処理について学びます。 Selenium IDEこれらのコマンドを組み合わせることで、固定された記録済みスクリプトを、アプリケーションが実行時に返す値に応じて動作するスクリプトに変換できます。
⚠️ バージョンに関する注意: 以下のスクリーンショットはオリジナルからのものです Firefox-プラグイン Selenium IDE では、コマンドはキャメルケースの Selenese 名を使用します。現在の Chrome、 Firefox Edge拡張機能は同じ動作を維持しますが、ほとんどのコマンド名にスペースを含めて書き込みます。ping 表はこの記事の末尾付近に掲載されており、元のコマンドとスクリーンショットはすべて公開されたままの状態で保存されています。
Selenium IDE 変数
ストア
変数を保存するには Selenium IDEでは、 店舗 コマンド。以下の図は、「tutorial」という値を「myVariable」という名前の変数に格納します。
変数にアクセスするには、単に ${ … } 記号で囲みます。たとえば、「myVariable」の値を「userName」テキストボックスに入力するには、次のようにします。 Mercury ツアーの場合、値フィールドに ${myVariable} と入力します。
エコーコマンド Selenium IDE
格納された変数は、何かがそれを印刷するまで見えません。 echo このコマンドは、再生中にIDEのログペインにメッセージを書き込むため、その上にアサーションを作成する前に、ストアコマンドが期待どおりの結果をキャプチャしたことを最も迅速に確認できます。
このコマンドはどちらの形式も受け付けます。
- 文字通りの文字列。 テキストを Target 例えばフィールド ログイン手順が完了しました長いスクリプトの中でチェックポイントを示すため。
- 変数。 ${myVariable} を Target フィールド名の代わりに、格納されている値が表示されます。
2 つの習慣により、echo は見た目以上にずっと便利になります。変数を作成する store コマンドの直後に変数を出力すると、エラーが発生した場合でも、 trac20 ステップ後のアサーションではなく、キャプチャに ed します。また、ログ ペインにはすべてのコマンドが 1 つのフラット リストで表示されるため、各メッセージにはそれが属するステップをプレフィックスとして付けます。echo はログに書き込むだけで、ページを変更したりテストを失敗させたりすることはないため、スクリプトに永続的に残しておいても安全です。
ストア要素現在
このコマンドは、指定された要素の有無に応じて「true」または「false」を格納します。以下のスクリプトは、ブール値「true」を「var1」に、「false」を「var2」に格納します。確認のため、echoコマンドを使用してvar1とvar2の値を表示します。 URL 以下の図は、 Mercury ツアーのホームページ。
ストアテキスト
このコマンドは、要素の内部テキストを変数に格納するために使用されます。以下の図は、Facebookのサインアップページにあるh1タグの内部テキストを「textVar」という名前の変数に格納する例です。
ページ上に同じ種類の要素は一つしかないため、「css=h1」をターゲットとして使用しても問題ありません。下の画像は、 Selenium IDEは「Sign Up」という文字列を「textVar」変数に保存することができました。なぜなら、echoコマンドでその値が正しく表示されたからです。
アラート、ポップアップ、および複数 Windows
アラートはおそらく最もシンプルなポップアップウィンドウの形式です。最も一般的な Selenium アラートの処理に使用される IDE コマンドは次のとおりです。
| アラート | あなたが使用します |
|---|---|
|
アサートアラート アサートノットアラート |
アラートメッセージを取得し、指定した文字列値と照合します。 |
|
アサートアラート現在 アサートアラートが存在しない |
アラートが存在するかどうかを表明する |
| ストアアラート | アラートメッセージを取得し、指定した変数に格納します。 |
| ストアアラートプレゼント | アラートが存在する場合はTRUE、それ以外の場合はFALSEを返します。 |
|
アラートの検証 verifyNotAlert |
アラートメッセージを取得し、指定した文字列値と等しいかどうかを確認します。 |
|
verifyアラートプレゼント verifyAlertNotPresent |
アラートが存在するかどうかを確認します |
アラートを操作するときは、次の XNUMX つのことに注意してください。
- Selenium IDEは警告ウィンドウの「OK」ボタンを自動的にクリックするため、実際の警告メッセージは表示されません。
- Selenium IDEは、ページのonload()関数内で発生するアラートを処理できません。ページが完全に読み込まれた後に生成されるアラートのみを処理できます。
この例では storeAlert コマンドを使用して、 Selenium IDEは実際のアラートを表示しなかったが、メッセージ自体は取得できた。
ステップ1) In Selenium IDE、ベースを設定します URL http://jsbin.com へ。 URL http://jsbin.com/usidix です。これらの jsbin スニペットは、 Firefox-プラグイン時代の問題であり、解決できない可能性があります。アラートを表示するボタンがあるページはすべて同じ結果を再現します。
ステップ2) 以下のようにスクリプトを作成してください。clickコマンドはGo!ボタンを対象とし、storeAlertはメッセージをalertMessageに格納し、echoはそれを出力します。
ステップ3) スクリプトを実行しても、実際のアラートが表示されるとは限りません。下のログペインには、ダイアログが表示されなかったにもかかわらず、キャプチャされたメッセージが表示されます。
確認
確認メッセージは、アラートとは異なり、OKボタンとキャンセルボタンの両方が表示されるポップアップです。確認メッセージの処理に使用できるコマンドは、アラートのコマンドと同じです。
- assertConfirmation / assertNotConfirmation
- assertConfirmationPresent / assertConfirmationNotPresent
- 店舗確認
- 店舗確認プレゼント
- 確認確認 / 確認確認しない
- 確認済みであることを確認する / 確認済みではないことを確認する
さらに、これらのコマンドは Selenium 「OK」ボタンか「キャンセル」ボタンのどちらを選択するか。
- 次の確認画面でOKを選択する / 次の確認画面でOKを選択して待機する
- 次の確認でキャンセルを選択してください
これらのコマンドを配置してください 確認ボックスをトリガーするコマンドなので、 Selenium IDEはどのオプションを選択すべきかを事前に把握しています。そのため、スクリプト実行中に実際の確認ボックスが表示されることはありません。
ユーザーが「OK」ボタンを押したか「キャンセル」ボタンを押したかを報告するようにコード化されたボタンを備えたウェブページをテストしてみましょう。
ステップ1) In Selenium IDE、ベースを設定します URL http://jsbin.com へ。 URL http://jsbin.com/enifaf です。
ステップ2) 下記のようにスクリプトを作成してください。今回は最初に「OK」ボタンを押します。
ステップ3) スクリプトを実行すると、実際の確認画面は表示されませんが、ウェブページにはどのボタンが押されたかが表示されます。 Selenium IDEが押されました。
ステップ4) chooseOkOnNextConfirmation コマンドを chooseCancelOnNextConfirmation コマンドに置き換えて、スクリプトを再度実行してください。すると、ページには反対の選択結果が表示されます。
複数 Windows
別のウィンドウを開くリンクをクリックした場合は、まず指示する必要があります。 Selenium IDEでは、ウィンドウ内の要素にアクセスする前に、そのウィンドウを選択する必要があります。従来のIDEでは、ウィンドウのタイトルをロケーターとして使用していました。
ウィンドウを切り替えるには、selectWindowコマンドを使用します。
タイトルが「First Window」であるリンク http://jsbin.com/ocinaj/1 を使用します。そのページの「here」ハイパーリンクをクリックすると、Facebook が新しいウィンドウで開きます。その後、指示に従います。 Selenium IDE で次の操作を実行します。
- selectWindowコマンドを使用し、ウィンドウタイトルをロケーターとして指定することで、親ウィンドウから新しく起動したFacebookウィンドウに制御を移します。
- 新しいウィンドウのタイトルを確認してください。
- selectWindowコマンドを使用して、対象として「null」を指定して元のウィンドウを再度選択します。
- 現在選択されているウィンドウのタイトルを確認してください。
上記の計画は、ここに示した4段階の手順に落とし込まれます。
ステップ1) ベースを設定する URL http://jsbin.com へ。
ステップ2) 以下のようにスクリプトを作成します。
新しく起動したウィンドウのタイトルを読むには、読み込みが完了するまで待つためにpauseコマンドが必要です。
ステップ3) スクリプトを実行します。 注目してください。 テストケース 合格しました。つまり、ウィンドウを切り替えて、それぞれのタイトルを正常に確認できたということです。
selectWindow ターゲットを「null」に設定すると、親ウィンドウが自動的に選択されることを常に覚えておいてください。この場合、「link=here」要素が見つかったウィンドウが選択されます。
注意: このチュートリアルが作成されて以降、Facebookはページタイトルを変更しました。スクリプト内の想定されるタイトルを適宜修正してください。
モダン Selenium これらのコマンドのIDEにおける同等コマンド
その Firefox-plugin IDE は、 Firefox WebExtensionsアーキテクチャに移行し、現在のChromeでは、 Firefox Edge拡張機能は、ほとんどのSeleneseコマンドの名前をスペースを含む形式に変更しました。動作は変更されていないため、以下の表を参照すれば、最新のインストール環境で上記のスクリプトを確認できます。
| このチュートリアルのレガシーコマンド | 電流プローブ Selenium IDEコマンド |
|---|---|
| 店舗 | 店舗 |
| echo | echo |
| storeText | テキストを保存 |
| storeElementPresent | 要素が存在することを保存する(または要素が存在することを表明する) |
| assertAlert / verifyAlert | アサートアラート / 検証アラート |
| 次の確認でOKを選択してください | 次の確認画面で「OK」を選択してください。 |
| 次の確認でキャンセルを選択してください | 次の確認画面でキャンセルを選択してください |
| selectWindow (title をターゲットとして) | ハンドル=${handle}のウィンドウを選択します。 |
注目すべき違いが2つあります。以前の記事では触れられていなかったプロンプトには、独自のコマンドが追加されました。 次のプロンプトに答えてください ダイアログが表示される前に返答を計画し、 ウェブドライバーがプロンプトを表示して応答します 既に開いているプロンプトに入力します。また、ウィンドウの切り替えはページタイトルに依存しなくなりました。 店舗の窓ハンドル まずハンドルをキャプチャし、次に渡す ハンドル=${yourHandle} ウィンドウを選択する。この変更により、上記の注記で説明されている、サイトがページ名を変更するだけでスクリプトがウィンドウを見つけられなくなるという不具合モードが解消されます。 Selenium IDEプロジェクトサイト 現在使用可能なコマンドセット全体を表示します。













