phantomjs是一個無界面瀏覽器,用來操做web頁面的一個工具,好比登陸,提交表單等等。html
//建立一個瀏覽器對象 var page = require('webpage').create(); //傳參部分 //var = system = require('system'); //檢查參數長度 //if (system.args.length === 1){} //console.log('Usage: phantomfs iframe.js <some URL>'); // phantom.exit();} //參數獲取 //var address ; //address = system.args[1]; //日誌輸出編碼 phantom.outputEncoding="gbk"; //web頁面打開操做 page.open("url",function(status){ //輸出頁面標題 console.log(page.title); //截圖... page.render("f51.png") if(status == "success"){ //此處能夠寫js 代碼了。注意,此處的代碼是並行執行的,要用setTimeout處理,若是屢次調用寫多個,延遲時間 平行順延... setTimeout(function(){ page.evaluate{ //真正操做頁面js代碼的地方//好像不能用for指令,我沒操做成功 if ( typeof(jQuery) == "undefined" ) { // 若是沒有jquery,遠程加載一個 page.injectJs('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' ); } }; },2000); setTimeout(function(){ //截圖 page.render("end10101010.png") //退出... phantom.exit(0); console.log("Page failed to load."); },4000); } else{ //截圖 page.render("end10101010.png") //退出... phantom.exit(0); console.log("Page failed to load."); } });
#加載ifame,假設ID爲contentframejquery
document.getElementById("contentframe").contentDocumentweb
#加載IDajax
document.getElementById("row_3")api
#加載元素數組
document.getElementsByTagName("td") //返回值是元組瀏覽器
#支持連續操做工具
document.getElementById("contentframe").contentDocument.getElementById("row_3").getElementsByTagName("td")[0].getElementsByTagName("input")[0].click()ui
#獲取值google
document.getElementById("row_3").[innerText,innerHtml,value];賦值="..."
#jq經常使用遍歷
$("#id...").find("元素,返回查找的元素之後的全部集合").children("元素子元素,返回數組")
#jq 操做iframe
$("iframe_id...").contents().find("").children("")
443端口運行方法
phantomjs.exe --ignore-ssl-errors=yes hello.js //heloo.js爲語法框裏的代碼
總結:
參考資料
百度,google...