コマンドの追加
Selenium IDEにコマンドを追加するには、まずマニフェストで宣言してください。
コマンドを宣言すると、Selenium IDEは、その実行と出力のリクエストに応答することを期待します。
コマンドの実行
再生がコマンドに達すると、それを実行するためのリクエストを受け取ります。
{
action: "execute",
command: {
command: "commandId",
target: "target specified",
value: "value specified"
},
options: {
runId: "unique identifier",
testId: "test identifier",
frameId: "the frame context",
tabId: "the tab context",
windowId: "the window context"
}
}
action
-execute
、このアクションはコマンドの実行を要求します。
コマンド
ユーザーがテーブルに入力したコマンドの詳細
command
- マニフェストに記載されているコマンドID(フレンドリーネームではありません)。target
- 入力されたターゲット(コマンドがターゲットを取らない場合は安全に無視できます)。value
- 入力された値(コマンドが値を取らない場合は安全に無視できます)。
オプション
実行環境を詳述した再生オプション
runId
- オプション。現在のテスト実行の一意の識別子。特定のコマンドが同じ実行中に実行されたかどうかを推測するために使用できます。testId
- テストの永続的な一意の識別子。テストの内容が変更された場合でも、常に同じ識別子が送信されます。frameId
-integer
または0 || undefined
は、コマンドを実行するフレームを示します。0
またはundefined
は、コマンドをwindow
レベルで実行する必要があることを示します。tabId
- コマンドを実行するタブ。windowId
- テスト中のタブを含むウィンドウ。
**注意:** ユーザーがコマンドをダブルクリックして単独で実行した場合、runId
は生成されません。これは、単一のコマンド実行か、完全なテスト実行かを判断するために使用できます。
IDEに結果を送信する
IDEに有効なレスポンスを送信するには、まず、IDEに表示する4つの可能な結果のどれを決定する必要があります。
成功
コマンドが成功しました。
sendResponse(true);
未決定
コマンドは完了しましたが、成功したかどうかを確実に判断できません。
後でコマンドの状態を更新するには、再生APIを使用します。
sendResponse({ status: "undetermined" });
ソフトエラー
コマンドは失敗しましたが、テストケースはその後も実行を継続できます(例:verify
コマンド)。
sendResponse({ error: "detailed error to show the user" });
ハードエラー
コマンドが失敗し、テストを続行できなくなりました(例:click
)。
sendResponse({ error: "detailed error to show the user", status: "fatal" });
コマンドの出力
コマンドラインランナーを使用してテストケースを実行するには、コマンドはそれを実行するためのJavaScriptコードフラグメントも提供する必要があります。
提供に失敗すると、ユーザーはテストケースを保存しようとするとエラーが発生します。
コマンドのコード出力を実装する前に、出力の一般的な概念を理解しておくと役立ちます(リンク)。
この記事ではコマンドのテストコードのみに焦点を当てています。プラグインがセットアップとティアダウンコードを追加する必要がある場合は、セットアップとティアダウンコードの出力を参照してください。
Selenium IDEは、マニフェストに登録したコマンドを出力するリクエストを送信します。
{
action: "emit",
entity: "command",
command: {
command: "commandId",
target: "target specified",
value: "value specified"
}
}
action
-emit
、このアクションはコードを出力する必要があることを示します。entity
-command
、このエンティティは、コマンドが出力されることを示します。
コマンド
ユーザーがテーブルに入力したコマンドの詳細
command
- マニフェストに記載されているコマンドID(フレンドリーネームではありません)。target
- 入力されたターゲット(コマンドがターゲットを取らない場合は安全に無視できます)。value
- 入力された値(コマンドが値を取らない場合は安全に無視できます)。
出力されたコードの返却
コマンドを実行するJavaScript文字列の作成が完了したら、IDEに送り返します。
return
キーワードを使用しないでください。Promiseを待つ必要がある場合は、await
を使用してください。return
を使用すると、テストが途中で終了します。
**注意:** コードを整形したり、改行を挿入したりしないでください。IDEが代わりに整形します。
sendResponse(`driver.findElement().then((element) => {element.perform...});`);
IDEの内部出力モジュールで、広範な例を見ることができます。