利用Selenium的方法進(jìn)行截圖

本文轉(zhuǎn)載:http://blog.csdn.net/u011541946/article/details/70141488

http://www.cnblogs.com/timsheng/archive/2012/09/05/2672651.html

介紹如何利用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ū)域一般是截不到的。現(xiàn)在webdriver解決了這個(gè)問(wèn)題,無(wú)論頁(yè)面有多長(zhǎng),webdriver都能比較完美的截到完整的頁(yè)面。

下面的代碼演示了如何使用webdriver進(jìn)行截圖:

1# -*- coding: utf-8 -*- 2fromseleniumimport webdriver 3import unittest 4import os,sys,time 5import HTMLTestReport 6 7#登錄 8driver =webdriver.Firefox() 910current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))11current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time()))12print(current_time )13print(current_time1 )14# 必須打印圖片路徑HTMLTestRunner才能捕獲并且生成路徑,\image\**\\**.png 是獲取路徑的條件,必須這樣的目錄15#設(shè)置存儲(chǔ)圖片路徑,測(cè)試結(jié)果圖片可以按照每天進(jìn)行區(qū)分16171819#通過(guò)if進(jìn)行斷言判斷20driver.get("https://baidu.com/")21#新創(chuàng)建路徑“.”表示當(dāng)前整個(gè).py文件的路徑所在的位置,“\\”路徑分割符,其中的一個(gè)是“\”表示轉(zhuǎn)義字符22pic_path ='.\\result\\image\\'+ current_time1+'\\'+ current_time +'.png'23print(pic_path)24time.sleep(5)25print(driver.title)26#截取當(dāng)前url頁(yè)面的圖片,并將截取的圖片保存在指定的路徑下面(pic_path),注:以下兩種方法都可以27driver.save_screenshot(pic_path)28driver.save_screenshot('.\\result\\image\\'+ current_time1+'\\'+ current_time +'.png')? 2930ifu'百度一下,你就知道'== driver.title:31print('Assertion test pass.') 32else:33print('Assertion test fail.')3435#通過(guò)try拋出異常進(jìn)行斷言判斷? 36driver.get("https://baidu.com/")37driver.save_screenshot(pic_path)38try:39assertu'百度一下,你就知道'==? driver.title40print('Assertion test pass.')? 41except Exception as e:42print('Assertion test fail.', format(e))4344time.sleep(5)45driver.quit()

save_screenshot方法實(shí)現(xiàn)了截圖功能,只需要傳入保存截圖的文件名就可以了,十分方便。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容