在自動化測試過程中,是有必要截圖的,特別是遇到錯誤的時候進行截圖,截圖可以幫助我們直觀的定位錯誤、記錄測試步驟。。截圖對於測試人員來說應該是較爲重要的一個技能。
webdriver的截圖功能十分強悍,無論頁面多長,webdriver都能比較完美的截到完整的頁面。
Webdriver自帶截圖功能:
(1)get_screenshot_as_file()
該方式很簡單,通過driver獲取該方法,將截圖要保存的路徑寫入就好,
(2)save_screenshot(),與get_screenshot_as_file()方式一樣,使用起來都很簡單
看以下實例,打開csdn首頁進行截圖
# -*- coding: utf-8 -*-
from selenium import webdriver
import unittest
import os,sys,time
from pathlib import Path
#初始化實例
driver = webdriver.Chrome()
current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(current_time )
print(current_time1 )
#設置存儲圖片路徑,測試結果圖片可以按照每天進行區分
#通過if進行斷言判斷
driver.get("https://www.csdn.net/")
#新創建路徑“.”表示當前整個.py文件的路徑所在的位置,“\\”路徑分割符,其中的一個是"\"轉義符
pfilename = u'.\\image'
pic_path = pfilename+ '\\' + current_time1 + '_' + current_time + '.png'
#判斷文件夾是否存在,不存在就新建一個新的
if Path(pfilename).is_dir():
pass
else:
Path(pfilename).mkdir()
print(pic_path)
time.sleep(2)
print(driver.title)
#截取當前url頁面的圖片,並且將截取的圖片保存在指定的路徑(pic_path)
driver.save_screenshot(pic_path)
if u'CSDN-專業IT技術社區' == driver.title:
print('Assertion test pass')
else:
print('Assertion test fail')
driver.quit()
運行的結果如下