プラグインのヘルスチェック
プラグインは、拡張ウィンドウが開いている場合にのみ、Selenium IDEに登録できます。
それ以前に登録しようとすると、「Selenium IDEがアクティブではありません」というエラーが発生します。
これに対処するには、システムAPIのヘルスチェックにメッセージを送信できます。
ヘルスリクエスト
{
uri: "health",
verb: "get"
}
ヘルスレスポンス
error
- Selenium IDEが非アクティブであるか、インストールされていません。true
- プラグインは既に登録されており、リクエストを受け入れることができます。false
- プラグインは登録されておらず、[[登録 | プラグインの始め方#registering-the-plugin]]リクエストを送信する必要があります。
ヘルスチェックのポーリング
このヘルスチェックメカニズムを使用して、ポーリングを導入し、Selenium IDEがアクティブになったときに登録することができます。
ユーザーがIDEのウィンドウを閉じることができるため、その後もSelenium 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のウィンドウが閉じられると、1秒以内にそのことを通知するコールバックを受け取ります。