본문 바로가기
이것저것(독후감같은거)

phantomJs include jquery file and clipRect(object)

by 혜룐 2015. 11. 10.

phantomJs 스크립트 안에서 jquery를 사용하기 위해 
jquery를 inject 하는 방법이다. ->page.injectJs("/test/program/phantomjs/script/include/jquery.min.js");
( API문서를 찾아봤더니, 아직 TODO다.. ㅎㅎ http://phantomjs.org/api/webpage/method/inject-js.html )
1) inject (file)
- jquery파일을 로컬에 받아와도 되고, google에 링크를 걸어도 된다.
- 나는 로컬에 받았고, 이렇게 사용했다. page.injectJs("/test/program/phantomjs/script/include/jquery.min.js");
- phantom.js 스크립트 전문이다. 파일명은 ex_injectJs.js 
[root@servers examples]# vim ex_injectJs.js 
var page = require('webpage').create(),
system = require('system'),
t, address;
page.onConsoleMessage = function(msg){
console.log(msg);
}
// validation param 
if (system.args.length === 1) {
console.log('Usage:phantomJs ex_injectJs<some URL>');
phantom.exit(1);
}
// use to jquery
t = Date.now();
address = system.args[1];
page.open(address, function (status) {
if (status !== 'success') {
console.log('Unable to access network');
}
page.injectJs("/test/program/phantomjs/script/include/jquery.min.js");
page.evaluate(function () {
$("#realTimeSearchWord").each(function(k, v){
$(this).find("li div span a").each(function(k , v){
var that = $(this);
console.log(that.attr("href") + that.text() );
});
});
});
phantom.exit();
});
2) clipRect
- This property defines the rectangular area of the web page to be rasterized when page.renderis invoked. If no clipping rectangle is set, page.render will process the entire web page.
[root@server examples]# vim ../script/screenPrint.js 
var newPage = require('webpage').create(),
system = require('system');
newPage.onConsoleMessage = function(msg){
console.log(msg);
}
// validation param 
if (system.args.length === 1) {
console.log('Usage:phantomJs filename.js<some URL>');
phantom.exit(1);
}
// 시스템으로부터의 입력(?) 을 아래처럼 처리 하면 된다.
address = system.args[1];
newPage.clipRect = {
top:14,
left:3,
width:400,
height:300
};
newPage.open( address, function() {
newPage.render('/data/phantom/test.png');
phantom.exit();
});


설치나 간단한 퀵 스타트는 http://rhr0916.tistory.com/11  여기에 정리를 했다.


참고 사이트 : http://newspaint.wordpress.com/2013/03/19/how-to-click-on-a-div-or-span-using-phantomjs/


(이 글을 14년도에 적었던 글인데 바뀐게 있는지 찾아봐야겠네..)