我现在想做一个自动登录的脚本,但是我遇到了一点问题。
我在监听load的时候触发回调函数执行fillForms
window.addEventListener("load", () => {
const currentURL = window.location.href;
if (currentURL.includes("https://xxx.com/login")) {
fillForms(getRandomAccount());
}
});
这是fillForms函数的逻辑
function fillForms(account) {
document.querySelector('input[name="username"]').value = account.username;
document.querySelector('input[name="password"]').value = account.password;
let submitbutton = document.querySelector('button[type="submit"]');
console.log(submitbutton);
console.log(submitbutton.click);
if (submitbutton) {
console.log(submitbutton);
submitbutton.click();
}
// setTimeout(() => submitbutton.click(), 1000);
localStorage.setItem("account", account);
}
其中页面执行脚本后,submitbutton的节点可以正常输出,但是我的登录页面并不会跳转,我怀疑它没有执行click函数,所以我在注释里面使用延时函数去触发click事件,结果延时触发页面发生了成功跳转登录成功了,为什么呢?我的代码该做怎么样的改进才能直接去触发click事件,而不需要使用延时函数