新增指令
要將指令新增到 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"
}
}
動作-執行,此動作要求您執行指令。
指令
指令詳述使用者在表格中輸入的內容
指令- 指令 ID(非友善名稱),如清單中所示。目標- 填入的目標(如果您的指令不採用目標,則可以安全地忽略)。值- 填入的值(如果您的指令不採用值,則可以安全地忽略)。
選項
播放選項,詳述執行環境
執行 ID- 選擇性,當前測試執行的唯一識別碼,可用於推斷在同一執行期間執行特定指令。測試 ID- 測試的持續唯一識別碼,即使測試內容可能會變更,仍會傳送相同的識別碼。框架 ID-整數或0 || 未定義表示指令應在何種框架下執行,0或未定義表示指令應在視窗層級執行。分頁 ID- 執行指令的分頁。視窗 ID- 包含測試分頁的視窗。
注意:如果使用者雙擊指令單獨執行,將不會產生 runId,這可以用來判斷這是一個單一指令執行,或是一個完整的測試執行。
將結果傳回 IDE
要將有效的回應傳回 IDE,首先必須確定要讓 IDE 顯示的 4 個可能結果中的哪一個。
通過
您的指令已通過。
sendResponse(true);
未確定
如果您的指令已完成,但無法可靠地判斷是否已通過。
若要稍後更新指令狀態,請使用 Playback 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"
}
}
動作-發出,此動作表示必須發出程式碼。實體-指令,此實體表示要發出指令。
指令
指令詳述使用者在表格中輸入的內容
指令- 指令 ID(非友善名稱),如清單中所示。目標- 填入的目標(如果您的指令不採用目標,則可以安全地忽略)。值- 填入的值(如果您的指令不採用值,則可以安全地忽略)。
返回發出的程式碼
完成建立執行指令的 JavaScript 字串後,將它傳回 IDE。
不要使用 return 關鍵字,如果需要等待 Promise,請使用 await,return 會導致測試提早結束。
注意:不要美化程式碼,或插入新行,IDE 會自動美化。
sendResponse(`driver.findElement().then((element) => {element.perform...});`);
可以在 IDE 內部的 發射模組 中檢視詳細範例。
