Python+selenium之截圖圖片並保存截取的圖片


本文轉載:http://blog.csdn.net/u011541946/article/details/70141488

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

介紹如何利用Selenium的方法進行截圖,在測試過程中,是有必要截圖,特別是遇到錯誤的時候進行截圖。在selenium for Python中主要有三個截圖方法,我們挑選其中最常用的一種。

截圖技能對於測試人員來說應該是較為重要的一個技能。

在自動化測試中,截圖可以幫助我們直觀的定位錯誤、記錄測試步驟。

記得以前在給某跨國銀行做自動化項目的時候,某銀的PM要求我們自動化測試的每一步至少需要1個截圖,以證明每個功能都被自動化測試給覆蓋過,在這種情況下截圖就成了證明自動化測試有效性的重要手段。

好的測試人員都會截得一手好圖,就跟骨灰級宅男定會吟得一手好詩一般。

webdriver的截圖功能十分強悍。以前在截圖的時候,最麻煩的問題莫過於頁面太長而只能截到一屏,屏幕以外需要移動滾動條才能看到的區域一般是截不到的。現在webdriver解決了這個問題,無論頁面有多長,webdriver都能比較完美的截到完整的頁面。

下面的代碼演示了如何使用webdriver進行截圖:

 1 # -*- coding: utf-8 -*-
 2 from selenium import webdriver
 3 import unittest
 4 import os,sys,time
 5 import HTMLTestReport
 6 
 7 #登錄
 8 driver =webdriver.Firefox()
 9 
10 current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
11 current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time()))
12 print(current_time )
13 print(current_time1 )
14 # 必須打印圖片路徑HTMLTestRunner才能捕獲並且生成路徑,\image\**\\**.png 是獲取路徑的條件,必須這樣的目錄
15 #設置存儲圖片路徑,測試結果圖片可以按照每天進行區分
16 
17 
18 
19 #通過if進行斷言判斷
20 driver.get("https://baidu.com/")
21 #新創建路徑“.”表示當前整個.py文件的路徑所在的位置,“\\”路徑分割符,其中的一個是“\”表示轉義字符
22 pic_path = '.\\result\\image\\' + current_time1+'\\' + current_time +'.png'
23 print(pic_path)
24 time.sleep(5)
25 print(driver.title)
26 #截取當前url頁面的圖片,並將截取的圖片保存在指定的路徑下面(pic_path),注:以下兩種方法都可以
27 driver.save_screenshot(pic_path)
28 driver.save_screenshot('.\\result\\image\\' + current_time1+'\\' + current_time +'.png')  
29 
30 if u'百度一下,你就知道' == driver.title:
31     print ('Assertion test pass.') 
32 else:
33     print ('Assertion test fail.')
34 
35  #通過try拋出異常進行斷言判斷   
36 driver.get("https://baidu.com/")
37 driver.save_screenshot(pic_path)
38 try:
39     assert  u'百度一下,你就知道' ==  driver.title
40     print ('Assertion test pass.')  
41 except Exception as e:
42     print ('Assertion test fail.', format(e))
43 
44 time.sleep(5)
45 driver.quit()

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


免責聲明!

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



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