Selenium IDE无法从自定义WebExtension录制自定义命令
问题:Selenium IDE自定义插件录制命令仅生成空注释
按照官方文档制作Selenium IDE自定义插件,已成功注册自定义命令并在IDE中显示,但录制时发送请求后,结果仅出现空注释命令,尝试录制click命令也存在相同问题。
注册插件及命令的代码:
const registerPayload = { uri: "/register", verb: "post", payload: { name: "InterceptPOC", version: "1.0", commands: [ { id: "threeJsCommand", name: "ThreeJS Action" } ] } }; chrome.runtime.sendMessage("mooikfkahbdckldjjndioackbalphokd", registerPayload);
录制时发送的POST请求代码:
const requestPayload = { uri: "/record/command", verb: "post", command: "threeJsCommand", target: "test" } chrome.runtime.sendMessage("mooikfkahbdckldjjndioackbalphokd", requestPayload);
解决要点
- 补全命令的参数定义:注册命令时仅提供
id和name不足以让IDE正确解析参数,必须添加parameters字段声明命令接收的参数类型和名称。示例:
commands: [ { id: "threeJsCommand", name: "ThreeJS Action", parameters: [ { name: "target", type: "string" // 或"locator",根据实际需求选择 } ] } ]
- 修正录制请求的payload结构:发送
/record/command请求时,命令及参数需要嵌套在payload字段内,而非直接作为顶层属性。正确格式:
const requestPayload = { uri: "/record/command", verb: "post", payload: { command: "threeJsCommand", target: "test" } };
- 确认插件通信权限配置:在插件的
manifest.json中添加externally_connectable配置,确保允许与Selenium IDE的扩展ID通信:
"externally_connectable": { "ids": ["mooikfkahbdckldjjndioackbalphokd"] }
内容的提问来源于stack exchange,提问作者vicovicovico
相关产品推荐
相关产品推荐

