WebApp无法识别在PhantomJS中使用jQuery设置输入字段时发生的更改

WebApp doesn't recognize that an input field was changed when set with jQuery in PhantomJS

本文关键字:字段 输入 设置 jQuery 识别 PhantomJS WebApp      更新时间:2023-09-26

我用PhantomJS打开电报,并尝试用评估页面填充电话号码输入,如下所示:

page.evaluate(function(){
    $("input[name='phone_number']").val("123456789");
});

当PhantomJS用jQuery点击next按钮时,警告提示说:

"tel input is empty"

,但是当页面呈现时,我们可以在输入字段中看到数字。我如何填充这个输入?

问题可能是web应用程序在该字段上有一些事件侦听器,但当您直接更改值时不会调用它们。你可以尝试用jQuery触发其中的一些事件。

例如:

$("input[name='phone_number']").blur();

$("input[name='phone_number']").change();

我发现这并不一定有效。你可以尝试在PhantomJS中使用本地按键事件,像这样:

page.evaluate(function() {
    document.querySelector("input[name='phone_number']").focus();
});
page.sendEvent("keypress", "123456789");

page.sendEvent()将给定的键发送到聚焦的输入字段。