如何使用JavaScript网页抓取复杂的登录页面?

凯文·林奇

我正在尝试使用javascript登录到网页,但是,即使输入的文字清楚,该页面也会显示错误消息“用户名/密码字段为空”。这是我使用javascript输入用户名/密码的方法。

document.getElementById('username').value='TestUsername';
document.getElementById('password').value='TestPassword';

我相信页面正在使用angularJS来阻止javascript输入被识别。如果我在浏览器退格中手动输入一个字符,则会识别该文本。Chrome / Safari / Opera自动填充功能可以解决此问题,但是移动Safari偶尔会出现问题。

我如何使用javascript做到这一点,以便网页识别输入的文本?

另一个要注意的是,当识别出文本时,诸如用户名,密码,表单和提交按钮之类的HTML类元素都将更改类,例如“ ng-touched ng-dirty ng-invalid”到“ ng-touched ng-dirty ng” -有效”。我尝试使用javascript更改className,但是仍然无法识别文本。

吉列尔莫·古铁雷斯

设置输入值之后,尝试触发“ input”事件,如下所示:

var element = document.getElementById('username');
element.value='TestUsername';
var event = new Event('input', {
    'bubbles': true,
    'cancelable': true
});

element.dispatchEvent(event);

事件输入是Angular知道发生某些更改的方式,它必须运行摘要循环

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章