代码导出插件支持
插件 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,
}
action
-export
,表示需要导出代码的操作entity
,要导出的实体,可以是command
、下一节中提到的任何钩子,或导出新语言时的vendor
options
- 元数据,可帮助您的插件更明智地决定要导出什么(例如,项目、测试名称、套件名称等)
钩子
代码导出围绕钩子的概念构建,该概念提供了导出测试代码的各个部分的入口点。
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)