2014-04-27 44 views
0

我希望在我的linux服務器上有一個作爲守護程序運行的webbrowser。瀏覽器應該有一個應用程序接口,以便我可以編寫發送這些指令到瀏覽器(僞碼)的腳本:如何將Web瀏覽器作爲服務器上的守護程序運行(不使用GUI)?

set viewport size to 1024x768 
turn javascript on 
turn cookies off 
enable loading of images 
load http://facebook.com 
wait for execution of javascript (max 10 sec) 
scroll down 200 pixels 
move mouse-pointer to 280,500 (relative to viewport) 
wait again for execution of javascript (max 10 sec) 
get browser content as DOM (encoded as tree of JSON object) 
store viewport content as image to the file system 
emulate click'n'drag from x,y=10,15 to 20,70 (coordinates relative to element with id="abc") 

有解決方案(例如Perl的模塊)用於裝載的的HTML代碼網頁轉換爲字符串,還有將html字符串轉換爲DOM對象樹的解決方案。加載嵌入式圖像和後續鏈接也很容易。

但是我沒有找到能夠執行javascript的解決方案(並且我不想寫一個JavaScript模擬器)。有很多網站使用AJAX技術按需加載內容,並且我發現通過執行在服務器上運行的腳本來獲取這些內容非常困難。

而我不知道該怎麼做才能生成網頁的屏幕截圖而不在GUI上顯示網頁。我想在一個無GUI的服務器上爲我做一個腳本。

所有常見的Web瀏覽器都可以執行JavaScript,並且它們也可以在圖形視口中顯示Web內容。但是,是否還有一個瀏覽器可以將它作爲一個守護進程來執行,該守護進程由使用定義良好的API的外部腳本控制?也許有一個Firefox附加組件,將其變成守護進程?

+1

[phantomjs](http://phantomjs.org/) –

+0

是否有任何phantomjs的替代品?我安裝了它,但它崩潰了。見https://github.com/ariya/phantomjs/issues/12183 –

回答

0

我一直在通過Jenkins在通過Windows服務連接的遠程從站上運行的maven作業中使用selenium-firefox驅動程序。我看到進程資源管理器啓動firefox進程,執行硒自動化並退出。

在您要求的狀態中,我不確定硒是否支持JSON編碼。但它可能會做其他所有事情,並且很容易讓JSON部分工作。

相關問題