我使用Chrome扩展程序抓取网站,并且Chrome扩展程序偶尔会崩溃。为了重新加载崩溃的扩展,我创建了另一个扩展,每X分钟重新加载崩溃的扩展。
直到最近,一切都很好。当我没有对其进行任何更改时,我用来重新启动刮板的扩展程序不再重新启动该扩展程序。
这里是警报的示例:
chrome.alarms.get(alarmName, function(Alarm)
{
if (typeof Alarm === 'undefined')
{
console.log('is not defined');
chrome.alarms.create(alarmName,
{
periodInMinutes: 1
});
}
else
{
console.log('is defined');
}
});
然后是重新启动扩展程序的代码:
chrome.alarms.onAlarm.addListener(async function( alarm )
{
var child = null;
chrome.management.getAll(function (info) {
for (var i=0; i < info.length; i++) {
if (info[i].name == 'MyScraper') {
child = info[i];
console.log(child);
chrome.management.setEnabled(child.id, true, function ()
{
console.log('Enabled '+Date.now());
});
break;
}
}
});
});
代码正确找到扩展名并显示子对象,该对象的内容正常,但是一旦我尝试使用setEnabled重新加载它,控制台将输出“ Enable + time”,但抓取扩展名不会重新启动。我没有收到任何错误消息。
该扩展程序在带有Chromium的Raspberry Pi 4上运行,以前曾经在Windows上运行,但是我不明白为什么该代码不再起作用。
任何想法?
谢谢!
由于无法找到通过Chrome扩展程序解决此问题的方法,因此我安装了xdotool并创建了一个脚本,该脚本每10分钟点击一次重新加载按钮。这不是超级干净,但至少可以解决我的问题。
谢谢