程式碼匯出外掛程式支援
外掛程式 API 讓任何 Selenium IDE 外掛程式都能匯出程式碼,供下列使用:
- 現有語言
- 新語言
注意:如果要新增新語言,請查看 @seleniumhq/side-utils。您可以在現有程式碼匯出語言中看到它的使用範例(例如 java-junit)。
匯出設定
在您的外掛程式清單中,您需要指定它會匯出語言。
新增至現有語言
若要擴充現有語言,請使用 languages 鍵,並在陣列中指定哪些語言。
"exports": {
"languages": ["java-junit"]
}
目前可用的語言 ID 為 "java-junit"、"javascript-mocha"、"python-pytest" 和 "csharp-xunit"。
新增語言
若要將新語言新增至程式碼匯出,請使用 vendor 鍵,並在物件陣列中指定語言。
"exports": {
"vendor": [{"your-language": "Your language"}]
}
鍵是匯出事件中使用的 ID。值是 UI 中程式碼匯出功能表中使用的顯示名稱。
匯出事件
Selenium IDE 會針對每種類型的實體傳送下列事件,你的外掛程式可以回應這些事件以進行程式碼匯出。
{
action: "export",
entity,
language,
options,
}
動作-匯出,表示需要匯出程式碼的動作實體,要匯出的實體,可以是指令、下一節提到的任何掛鉤,或在匯出新語言時為供應商選項- 可協助你的外掛程式做出更明智的決策,決定要匯出什麼(例如,專案、測試名稱、套件名稱等)的元資料
Hooks
程式碼匯出建立於 hooks 的概念,提供進入點到要匯出的測試程式碼的各個部分。
afterAll(在所有測試完成後)afterEach(在每個測試完成後 - 在afterAll之前)beforeAll(在所有測試執行前)beforeEach(在每個測試執行前 - 在beforeAll之後)command(發出由外掛新增的新指令的程式碼)dependency(新增額外的語言相依性)inEachBegin(在每個測試中,在測試開始時)inEachEnd(在每個測試中,在測試結束時)variable(宣告一個新的變數,在整個套件中使用)
回應
新增至現有語言
若要回應匯出事件,請呼叫 sendResponse 以及您想要匯出的字串。如果您的字串有多行,請使用換行字元 (例如 \n) 將它們分隔開來。
或者,您可以考慮使用 程式碼匯出入門 中提到的指令物件結構。
sendResponse(`const myLibrary = require("my-library");`);
新增語言
針對您新語言的 vendor 匯出事件,您的外掛程式需要回應包含 filename 和 body 鍵的物件。
const payload = {
filename: 'test.js',
body: '// your final exported code\n// goes here\n// etc.'
}
sendResponse(payload)
