表单的 Web 自动化因设置输入值而失败



我正在尝试使用 nodejs 和 puppeteer 在网络会议软件 clearslide 上自动加入会议,当我设置输入值并尝试提交时,值消失并且表单没有引发输入值验证错误。查看 javascript 代码显示一些代码监视按键并评估密钥。我什至尝试使用字符代码调度按键事件,但这不起作用。需要一些如何正确设置输入值的建议。例如。我试过了

await page.evaluate ( (zoomMeetingName, zoomMeetingEmailId) => {
el = document.getElementById('email');
etype = 'click';
if (el.fireEvent) {
el.fireEvent('on' + etype);
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(etype, true, false);
el.dispatchEvent(evObj);
}
document.getElementById('email').value = zoomMeetingEmailId;
$("#name").change();
}, MeetingName, MeetingEmailId);

这将触发单击事件,然后设置电子邮件的输入值。值已设置,但一旦我提交或单击任何输入,字段就会变为空。我还尝试像这样触发按键事件:

var press = jQuery.Event("keypress");
press.which = 70;
press.ctrlKey= false,
press.bubbles= true,
press.altKey= false;
$("body").trigger(press);
$("#email").trigger(press);

你不需要自己模仿按键,木偶师有page.type方法:

page.type('#mytextarea', 'Hello'); // Types instantly
page.type('#mytextarea', 'World', {delay: 100}); // Types slower, like a user

最新更新