插件健康检查
仅当扩展窗口打开时,插件才能向 Selenium IDE 注册。
在此之前注册会产生一个错误,提示Selenium IDE 未激活
。
要解决此问题,可以向 系统 API 的健康检查发送一条消息。
健康请求
{
uri: "health",
verb: "get"
}
健康响应
error
- Selenium IDE 处于非活动状态或未安装。true
- 您的插件已注册,可以接受请求。false
- 您的插件未注册,应发送 [[注册 | 使用插件入门#registering-the-plugin]] 请求。
轮询健康检查
您可以使用此健康检查机制来引入轮询并在 Selenium IDE 激活时进行注册。
您应该在之后继续轮询 Selenium IDE,因为用户可以关闭 IDE 的窗口。
let interval;
export function sendMessage(payload) {
return browser.runtime.sendMessage(SIDE_ID, payload);
}
export function startPolling(payload, cb) {
interval = setInterval(() => {
sendMessage({
uri: "/health",
verb: "get"
}).catch(res => ({error: res.message})).then(res => {
if (!res) {
sendMessage({
uri: "/register",
verb: "post",
payload
}).then(() => {
console.log("registered");
cb();
});
} else if (res.error) {
cb(new Error(res.error));
}
});
}, 1000);
}
export function stopPolling() {
clearInterval(interval);
}
这样,您可以每秒重试一次连接到 IDE,如果 IDE 窗口关闭,您将在一秒钟内收到一个回调通知您。