使用phantomjs填充文本字段,不起作用

Use phantomjs to fill a textfield, not working

本文关键字:不起作用 字段 文本 phantomjs 填充 使用      更新时间:2023-09-26

试图使用phantomjs对具有名称为"category"的文本字段和值为"search"的按钮的表单进行查询,以下脚本将导致按钮被按下,从而触发POST消息的发送。但是,在POST消息中,我看不到category的值。

var page = require('webpage').create();
page.open('http://www.example.com', function() {
  page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
    page.evaluate(function() {
       $('input[name="category"]').value = "tmp1";
        console.log($('input[name="category"]').value);
        $('input[value="search"]').click();
    });
    //phantom.exit()
  });
});

如果我在chrome浏览器开发人员控制台上手动执行以下两行操作,则发送的HTTPPOST消息确实包含类别字段的正确值。知道出了什么问题吗?谢谢

$('input[name="category"]').value = "tmp1";
$('input[value="search"]').click();

使用.val()用jQuery更新表单字段的值。

$('input[name="category"]').val("tmp1");

问题是$('input[name="category"]')返回一个jQuery节点列表(类似于数组)。因此,您需要选择第一个访问值属性:

$('input[name="category"]')[0].value = "tmp1";
console.log($('input[name="category"]')[0].value);

更改为[0]