編寫自動化腳本的過程中經常需要截取程序執行過程中的圖片,selenium自帶API中存在截圖方法,本人使用的最簡單的截圖方法:
driver.get_screenshot_as_file(file_name)
在使用中出現情況:
1.網頁中無彈窗,截圖為全屏
2.網頁存在2層及3層以上彈框,截圖只截取了部分圖形,未截取全屏
針對這一情況,度娘說是滾動條位置問題,需采用JS將滾動條放置適合位置,嘗試后發現並不使用於本人的程序,因為網元不存在滾動條。針對次問題,采用第三方PIL模塊,但需說明PIL模塊僅使用於Python2.x ,在Python3.x 中采用windows 命令窗口 輸入命令 pip install PIL報錯,正確應輸入 pip install Pillow ,安裝成功后,輸入下來命令
from PIL import ImageGrab
image_save = ImageGrab.grab()
image_save.save(filename)
通過這種方法保存下為全屏截圖,需注意 python3.x 雖然安裝包名稱為Pillow ,代碼編寫 為 from PIL import ImageGrab
而非 from Pillow import ImageGrab