Веб-автоматизация для формы завершается неудачей, устанавливая значения ввода - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь автоматически присоединиться к собранию на прозрачном слайде программного обеспечения для веб-конференций, используя nodejs и puppeteer, когда я устанавливаю значения ввода и пытаюсь передать значения, исчезают, а форма не вызывает ошибку проверки входного значения. Глядя на код 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);

Это вызывает событие 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 голосов
/ 06 июля 2018

Вам не нужно имитировать нажатия клавиш самостоятельно, у кукловода есть page.type метод:

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