每次我必须访问网络时,我首先必须登录到我的大学登录页面,我怎样才能绕过它,我设法编写了一个 chrome 扩展,它会自动在页面上填充我的用户名和密码,但我怎样才能使浏览器为我点击登录按钮?有任何关于此的资源/想法/建议读物吗?
最佳答案
使用 Chrome 的“保存用户名和密码”功能?好吧,你不想这样做。
找到表单并提交。
如果表单有ID,则通过ID查找:
var form = document.getElementById('id');
form.submit();
如果没有,可能页面上只有一个表单,可以按如下方式查找:
var form = document.getElementsByTagName('form')[0];
form.submit();
如果这也不起作用,那么您可以使用用户名输入来查找其包含的表单。我假设您有对用户名输入的引用,因为您说过您可以为其填写一个值:
// Assume variable 'usernameInput' points to the username input element.
var form;
var p = usernameInput.parentNode;
while (p) {
if (p.nodeName.toLowerCase() == 'form') {
form = p;
break;
}
}
if (form) {
form.submit();
}
等等。
您还可以查找“提交”按钮并单击它。
var myButton = document.getElementById('submitButton');
myButton.click();
我从内容脚本中单击或提交取得了不同程度的成功。也许导入 jQuery 会把事情搞砸 - 我不确定。所以我发现自己用这个 gem 显式发送鼠标事件(根据需要将其调整为其他事件类型):
function clickElement(el) {
el.css('background-color', '#FFFF00');
el = $(el).get(0);
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, document, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
el.dispatchEvent(evt);
}
关于javascript - 如何制作一个自动登录我的大学登录页面的 Chrome 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880179/