selenium---屏幕截圖


前言

  通常在執行自動化用例的時候,是不會一直在旁邊檢測,報錯的時候想要留下一些證據給開發,可以在代碼中進行添加截圖操作,通過截圖把我們想要的內容截圖下來。那selenium中如何操作呢?

截圖

selenium截圖方法有很多種,安靜簡單的列舉幾種:

方法一:

獲取當前屏幕截圖: get_screenshot_as_file(filename) ,filename為圖片名稱,需要填寫完整路徑。

這里需要注意圖片后綴只能是png,如果是jpg或者其他格式的話,會報錯,但是程序還是回正常執行。

報錯內容:  UserWarning: name used for saved screenshot does not match file type. It should end with a `.png` extension "type. It should end with a `.png` extension", UserWarning) 

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 截圖保存在本地
driver.get_screenshot_as_file('123.png')

方法二:

獲取當前屏幕截圖,保存格式為base64:  get_screenshot_as_base64()  ,base64保存的圖片多數用來放入html報告中。

這里需要導入base64模塊,使用base64模塊展示圖片

from selenium import webdriver
import time
import base64
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 通過base64進行保存圖片
x = driver.get_screenshot_as_base64()
image = base64.b64decode(x)
file = open('1.jpg',"wb")
file.write(image)

方法三:

獲取當前窗口屏幕截圖的截圖。  save_screenshot(filename)  ,filename:表示圖片名稱。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 截圖保存在本地
driver.save_screenshot('123.png')

方法四:

以二進制的方式進行獲取當前屏幕截圖: get_screenshot_as_png()  

這里在通過打開二進制圖片的方法進行保存在本地

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.cnblogs.com/qican/')
time.sleep(2)
# 通過二進制的方法進行保存圖片到本地
x = driver.get_screenshot_as_png()
file = open('12.png',"wb")
file.write(x)

這里安靜就不把截圖成功結果發出來了,大家可以手動試試

異常捕捉

通常錯誤截圖大多數用在用例執行失敗的時候,安靜通過百度輸入框填寫錯誤的元素進行定位,然后通過異常捕捉進行截取圖片內容。

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
try:
    # 定位元素錯誤
    driver.find_element_by_id('anjing').send_keys('測試-安靜')
except Exception as msg:
    # 時間戳名稱,防止覆蓋
    name = time.strftime("%H.%M.%S")
    # 異常截圖保存在本地
    driver.get_screenshot_as_file('%s.png'%name)

這里我們可以查看發現圖片已經截取下來了,安靜這里沒有打印錯誤信息。

 

 

 

安靜通過小小的例子介紹了web自動化中的截圖功能,小伙伴們可以自己動手寫一寫。孰能生巧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM