2012年12月30日

利用 Groovy + Selenium 輕鬆進行批次網頁擷圖(Web Page ScreenShot Capture)

Selenium 是用來自動化測試網頁的工具,它會實際開啟瀏覽器、載入網頁,並依照自定的流程進行網頁互動操作。

Selenium 提供 Web ScreenShot 功能,可以擷取網頁畫面,並包括可見區域及完整網頁兩種模式。網頁擷圖功能原本是用於測試,讓開發者可以幫 Web App 製作一個自動化測試腳本,當測試發生失敗(Exception)時,就可以利用擷圖功能自動捕捉網頁錯誤發生時的畫面。不過使用上有個限制:這個 ScreenShot 功能必須搭配 Firefox 瀏覽器。

由於 Selenium 是 Java-based 的測試工具,因此搭配 Groovy 就可以藉助 Selenium 的 ScreenShot 功能簡單地進行網頁擷圖。

例如本站的其中一個頁面:http://blog.lyhdev.com/p/by-lyhcode.html

使用 Selenium 的完整擷取模式取得畫面:


這個範例每次執行都會先啟動一個 Selenium Server,所以速度比較慢。如果有大量擷圖的需求,可以另以一個 VM 安裝長駐的 Selenium Server 及 Firefox 瀏覽器,就能減少大量截圖所花費的時間。

範例原始碼

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!