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

时间:2018-07-04 19:40:37

标签: javascript node.js performance puppeteer webautomation

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

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);

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

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

1 个答案:

答案 0 :(得分:0)

您不需要自己模仿按键,p拥有page.type方法:

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