Javascript WebApp没有';在PhantomJS中使用jQuery设置时,无法识别输入字段已更改

Javascript WebApp没有';在PhantomJS中使用jQuery设置时,无法识别输入字段已更改,javascript,jquery,javascript-events,phantomjs,html-input,Javascript,Jquery,Javascript Events,Phantomjs,Html Input,我使用PhantomJS打开,并尝试使用评估页面填充电话号码输入,如下所示: page.evaluate(function(){ $("input[name='phone_number']").val("123456789"); }); 当PhantomJS使用jQuery单击下一步按钮时,警报信息显示“tel input is empty”,但当呈现页面时,我们可以在输入字段中看到数字。如何填写此输入?问题可能是web应用程序在该字段上有一些事件侦听器,但直接更改值时不会调用它们。您

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

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

当PhantomJS使用jQuery单击下一步按钮时,警报信息显示“tel input is empty”,但当呈现页面时,我们可以在输入字段中看到数字。如何填写此输入?

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

例如:

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

我发现这不一定有效。您可以尝试在PhantomJS中使用本机按键事件,如下所示:

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

将给定的键发送到聚焦输入字段。这就是为什么您需要事先关注预期字段。

不,这不是问题,jquery代码可以工作,但web应用程序不会读取元素的属性值。。
page.evaluate(function() {
    document.querySelector("input[name='phone_number']").focus();
});
page.sendEvent("keypress", "123456789");