天天看點

UI自動化之截圖

Webdriver自帶截圖功能,get_screenshot_as_file(),save_screenshot()

1、get_screenshot_as_file(),

該方式很簡單,通過driver擷取該方法,将截圖要儲存的路徑寫入就好,先看一張圖,沒運作代碼的時候,Picture目錄下還沒有名為baidu.png的圖檔,建個Picture目錄,是為了友善管理截圖的圖檔

UI自動化之截圖

 接下來運作代碼,儲存的圖檔如下:

UI自動化之截圖

 可以看到,圖檔是截圖成功了的,在對應檔案夾下也是可以看到圖檔的,代碼如下:

UI自動化之截圖

這裡需要注意的是,檔案存放的路徑一定要正确,路徑中的\\雙斜杠,有一個是轉義符,這個就不多說了

這種方式寫法太過于死闆,這樣運作下去,圖檔名字會重名,達不到什麼好效果,可以生成代碼運作的目前時間,來做為圖檔名,這樣就不會再出現該問題了,修改代碼如下:

UI自動化之截圖

 代碼運作後,檢視截圖的效果,如下:

UI自動化之截圖

 該方法使用起來更加友善,算是一個小小優化

2、save_screenshot()

save_screenshot()與get_screenshot_as_file()方式都是一樣,先看一個小例子,代碼如下:

UI自動化之截圖

 運作該代碼後,在目前目錄下會儲存成功一張名為baidu1.png的圖檔,如下:

UI自動化之截圖

 一種方式學會,另一種是不是很簡單了,接下來以這種截圖方式,來做個優化吧,先看代碼:

UI自動化之截圖

 該代碼的優化,是自動建立日期目錄,并将截取的圖檔以年月日時分秒命名儲存在目前日期目錄下,這樣就能很友善的檢視圖檔儲存路徑,也友善管理自己的測試圖檔

 運作代碼,我們來檢視結果,如下:

UI自動化之截圖

這樣運作代碼後,就自動生成了名為2018-09-16的檔案夾,截取的圖檔命名為2018-09-16-16_14_18.png,并儲存在2018-09-16的檔案夾下,如果明天運作該代碼,就會生成新的檔案夾,并命名為2018-09-17,這樣就很好的區分了圖檔日期來源,如果再次運作該代碼,就會提示檔案夾已存在,圖檔依然截取成功,如下:

UI自動化之截圖

繼續閱讀