问题描述
我正在尝试使用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();
});