phantomjs로 페이지 내용을 가져 오려고합니다. 공식 사이트 (예 : https://github.com/ariya/phantomjs/blob/master/examples/imagebin.js)의 많은 예제에서 page.open() 함수가 사용됩니다.
내 스크립트에서는 작동하지 않는 것 같습니다. 리플렉션을 사용하여 페이지 객체의 정의 된 모든 메소드를 살펴 보았습니다.phantomjs page.open()이 존재하지 않는 것 같습니다.
for (var prop in page) {
if (typeof page[prop] == 'function') {
log("method in page: " + prop);
}
}
open() 메소드가 표시되지 않았습니다. 나는 스크립트를 실행하려고 할 때 또한
을 (close()를, 표시 ... 등) DID (렌더링) : 열림 기능을 실행하지 않습니다
// include plugins
var system = require('system');
var fileSystem = require('fs');
var page = require('webpage').create();
// global errorhandler
phantom.onError = function(msg, trace) {
console.log("ERROR!!!!! \n" + msg);
phantom.exit(1);
};
// read json input and remove single outer quotes if set
var jsonin = system.args[1];
if (jsonin.charAt(0) == "'") {
jsonin = jsonin.substr(1, jsonin.length - 2);
}
// make object of json
var data = eval('(' + jsonin + ')');
// optional url
var url = system.args[2];
// transfer file
var dest = system.args[3];
console.log("systemargs[1]: data -> " + data);
console.log("systemargs[2]: url -> " + url);
console.log("systemargs[3]: dest -> " + dest);
openRoot();
/*
* open site
*/
function openRoot() {
page.onConsoleMessage = function(msg) {
console.log('INNER ' + msg);
};
page.open(url, function(status) {
if (status === "success") {
if (loadCount == 0) { // only initial open
console.log("opened successfully.");
page.injectJs("./jquery-1.8.3.min.js");
} else {
console.log("page open error.");
console.log('skip refresh ' + loadCount);
}
} else {
console.log("error opening: " + status);
}
});
}
phantom.exit(0);
. 로그에는 open() 메소드 내부에 메시지가 표시되지 않습니다.
내가 잘못했을 수있는 것에 대한 조언은 크게 감사하겠습니다. 추가 정보가 필요하면 알려주십시오. 내가 open
하지 않는 로그에 쓴 방법의 이전 목록 제공, 무엇을 기대하지 function
:
안부,
알렉스
편집 :
라인
console.log(typeof (page.open));
출력 있다. 흠.