PhantomJS不返回输入值

问题描述

我正在尝试使用phantomJS从<input type="hidden" id="exampleID" name="example" value="exampleValue">网站上获取价值。经过研究后,我发现了这种方法,但它似乎对我不起作用:

var system = require('system');
var page   = require('webpage').create();
var url    = system.args[1];
page.open(url,function () {
  console.log(document.getElementById('exampleID').value);
  phantom.exit();
});

运行它时,我什么也没得到。如果在浏览器的控制台中输入console.log(document.getElementById('exampleID').value),则会得到所需的输出。另外,如果我将js更改为console.log(page.content),则可以获得整个页面的源代码,但是仍然缺少我想要的值。我的猜测是,这是由于hidden属性。如何使phantomjs输出隐藏对象的值?

解决方法

您必须设置page.onConsoleMessage

var system = require('system');
var url    = system.args[1];

var page   = require('webpage').create();
page.onConsoleMessage = function (str) {
  console.log(str);
};

page.open(url,function () {
  console.log(document.getElementById('exampleID').value);
  phantom.exit();
});

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...