phantomJs頁面操作


因為phantomjs能加載和操縱頁面,它可以自動化地完美執行頁面的各種操作。

操作文檔:

腳本的被執行,就像它真的正在web 瀏覽器上運行一樣。

下面的腳本,是讀取元素id為myagent的文本內容

//導入webpage模塊,創建一個實例var page = require('webpage').create();
//輸出頁面默認的userAgent
console.log("The default Useragent is :" + page.settings.userAgent);
//修改頁面默認的userAgent
page.settings.userAgent = "SpecialAgent";
//打開網頁面
page.open("http://www.httpuseragent.org",function(status){
	if(status != 'success'){
		console.log("Unable to access network");
	}else{
      //執行js代碼
		var usa = page.evaluate(function(){
			return document.getElementById("myagent").textContent;
		});
		console.log(usa);
	}
	phantom.exit();
})

  

  

2、從1.6版本開始,你可以使用page.includeJs加載jquery到頁面中

var page = require("webpage").create();
page.open("http://www.sample.com",function(){
    引用jquery,執行回調函數
	page.includeJs("http://code.jquery.com/jquery-2.2.4.min.js",function(){
        // evaluate執行JS
		page.evaluate(function(){
			$("button").click();
		})
        退出phantomJs,必須寫在includeJs里面,否則可能jquery沒加載完成,便結束了phantom
		phantom.exit();
	})
})

  

3、如果我們現在有一個webpage實例,我們能做些什么呢?

屬性:

	page.canGoForward --> boolean
window.history.forward是否是一個有效的操作
	page.canGoBack --> boolean	
window.history.back 是否是一個有效的操作
	page.clipRect --> boolean
可以使用以下方式設置成一個對象{top: 0, left: 0, width: 1024, height: 768},它指定將會拍攝屏幕截圖的哪部分。	
	page.content --> string
整個頁面的HTML內容
	page.cookies -->object
當前頁面的cookies
	page.customHeaders -->object
TODO
	page.event -->object
包含鍵的修改和TODO
	page.libraryPath -->string
當前庫的路徑,通常指被執行腳本的路徑
	page.loading -->boolean
頁面是否正在加載
	page.loadingProgress -->number
頁面加載進度,100意味着頁面加載完成
	page.navigationLocked -->boolean
TODO
	page.offlineStoragePath -->string
下線數據或sqlite3數據在本地存儲的位置
	page.offlineStorageQuota -->number
可離線存儲的配額
	page.paperSize -->object
類似clipRect,但采用實際紙張尺寸,例如A4.
	page.scrollPosition -->object
用以下形式表示的當前滾動位置
{left:0
 top:0
 }
	page.settings -->object
useragent串的設置
	page.title -->string
當前頁面的TITLE
	page.url -->string
當前頁面的URL
	page.viewportSize -->object
用以下形式表示的瀏覽器大小{width:1024,height:768}
	page.windowName -->string
由WM分配的瀏覽器窗口的名字
	page.zoomFactor -->number
縮放系數,默認為1.
		

  函數

page.childFramesCount
page.childFramesName
page.close
page.currentFrameName
page.deleteLater
page.destroyed
page.evaluate
page.initialized
page.injectJs
page.javaScriptAlertSent
page.javaScriptConsoleMessageSent
page.loadFinished
page.loadStarted
page.openUrl
page.release
page.render
page.resourceError
page.resourceReceived
page.resourceRequested
page.uploadFile
page.sendEvent
page.setContent
page.switchToChildFrame
page.switchToMainFrame
page.switchToParentFrame
page.addCookie
page.deleteCookie
page.clearCookies
page.click()
page.refresh()

 

  事件

onInitialized
onLoadStarted
onLoadFinished
onUrlChanged
onNavigationRequested
onRepaintRequested
onResourceRequested
onResourceReceived
onResourceError
onResourceTimeout
onAlert
onConsoleMessage
onClosing

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM