我正试图使用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(,我会得到整个页面的源代码,但我想要的值仍然缺失。我的猜测是,这是因为隐藏的属性。如何使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();
});