能完美应对页面弹出异常对话框、页面刷新等情况,证明了脚本是可以完美模拟浏览器操作的。
function sleep(duration) {
return new Promise(resolve => {
setTimeout(resolve, duration);
})
}
async function deleteAll() {
for(;;) {
let deleteLink = document.querySelector('a[action-type=feed_list_delete]');
if (deleteLink) {
console.log(deleteLink);
let popupCount = 0;
let autoClickPopupOkButton = function(e) {
let node = e.target;
if (node.classList.contains('W_layer_pop')) {
popupCount++;
console.log('inserted', popupCount, node);
if (popupCount == 6) {
document.removeEventListener('DOMNodeInserted', autoClickPopupOkButton);
let okButton = node.querySelector('a[action-type=ok]');
if (okButton) {
okButton.click();
}
}
}
}
document.addEventListener('DOMNodeInserted', autoClickPopupOkButton);
deleteLink.click();
}
await sleep((Math.random() + 2) * 1000);
}
}
deleteAll();