Python+selenium實(shí)現(xiàn)截圖圖片并保存截取的圖片
這篇文章介紹如何利用Selenium的方法進(jìn)行截圖,在測(cè)試過(guò)程中,是有必要截圖,特別是遇到錯(cuò)誤的時(shí)候進(jìn)行截圖。在selenium for Python中主要有三個(gè)截圖方法,我們挑選其中最常用的一種。
截圖技能對(duì)于測(cè)試人員來(lái)說(shuō)應(yīng)該是較為重要的一個(gè)技能。
在自動(dòng)化測(cè)試中,截圖可以幫助我們直觀的定位錯(cuò)誤、記錄測(cè)試步驟。
記得以前在給某跨國(guó)銀行做自動(dòng)化項(xiàng)目的時(shí)候,某銀的PM要求我們自動(dòng)化測(cè)試的每一步至少需要1個(gè)截圖,以證明每個(gè)功能都被自動(dòng)化測(cè)試給覆蓋過(guò),在這種情況下截圖就成了證明自動(dòng)化測(cè)試有效性的重要手段。
好的測(cè)試人員都會(huì)截得一手好圖,就跟骨灰級(jí)宅男定會(huì)吟得一手好詩(shī)一般。
webdriver的截圖功能十分強(qiáng)悍。以前在截圖的時(shí)候,最麻煩的問(wèn)題莫過(guò)于頁(yè)面太長(zhǎng)而只能截到一屏,屏幕以外需要移動(dòng)滾動(dòng)條才能看到的區(qū)域一般是截不到的?,F(xiàn)在webdriver解決了這個(gè)問(wèn)題,無(wú)論頁(yè)面有多長(zhǎng),webdriver都能比較完美的截到完整的頁(yè)面。
下面的代碼演示了如何使用webdriver進(jìn)行截圖:
# -*- coding: utf-8 -*-
from selenium import webdriver
import unittest
import os,sys,time
import HTMLTestReport
#登錄
driver =webdriver.Firefox()
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 )
# 必須打印圖片路徑HTMLTestRunner才能捕獲并且生成路徑,\image\**\\**.png 是獲取路徑的條件,必須這樣的目錄
#設(shè)置存儲(chǔ)圖片路徑,測(cè)試結(jié)果圖片可以按照每天進(jìn)行區(qū)分
#通過(guò)if進(jìn)行斷言判斷
driver.get("https://baidu.com/")
#新創(chuàng)建路徑“.”表示當(dāng)前整個(gè).py文件的路徑所在的位置,“\\”路徑分割符,其中的一個(gè)是“\”表示轉(zhuǎn)義字符
pic_path = '.\\result\\image\\' + current_time1+'\\' + current_time +'.png'
print(pic_path)
time.sleep(5)
print(driver.title)
#截取當(dāng)前url頁(yè)面的圖片,并將截取的圖片保存在指定的路徑下面(pic_path),注:以下兩種方法都可以
driver.save_screenshot(pic_path)
driver.save_screenshot('.\\result\\image\\' + current_time1+'\\' + current_time +'.png')
if u'百度一下,你就知道' == driver.title:
print ('Assertion test pass.')
else:
print ('Assertion test fail.')
#通過(guò)try拋出異常進(jìn)行斷言判斷
driver.get("https://baidu.com/")
driver.save_screenshot(pic_path)
try:
assert u'百度一下,你就知道' == driver.title
print ('Assertion test pass.')
except Exception as e:
print ('Assertion test fail.', format(e))
time.sleep(5)
driver.quit()
save_screenshot方法實(shí)現(xiàn)了截圖功能,只需要傳入保存截圖的文件名就可以了,十分方便。
總結(jié)
以上所述是小編給大家介紹的Python+selenium實(shí)現(xiàn)截圖圖片并保存截取的圖片,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
通用的Django注冊(cè)功能模塊實(shí)現(xiàn)方法
這篇文章主要介紹了通用的Django注冊(cè)功能模塊實(shí)現(xiàn)步驟,幫助大家更好的理解和使用django,感興趣的朋友可以了解下2021-02-02
Python調(diào)用C語(yǔ)言的方法【基于ctypes模塊】
這篇文章主要介紹了Python調(diào)用C語(yǔ)言的方法,涉及Python基于ctypes模塊調(diào)用C語(yǔ)言編譯后的動(dòng)態(tài)鏈接庫(kù)文件相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
一篇文章教你學(xué)會(huì)使用Python繪制甘特圖
甘特圖又稱為橫道圖、條狀圖,它是以作業(yè)排序?yàn)槟康?,將活?dòng)與時(shí)間聯(lián)系起來(lái)的最早嘗試的工具之一,能夠很直觀地顯示項(xiàng)目、進(jìn)度等和時(shí)間的內(nèi)在關(guān)系隨著時(shí)間的進(jìn)展情況,在管理和生產(chǎn)活動(dòng)中被廣泛使用2021-09-09

