這篇文章介紹如何利用Selenium的方法進行截圖,在測試過程中,是有必要截圖,特別是遇到錯誤的時候進行截圖。在selenium for Python中主要有三個截圖方法,我們挑選其中最常用的一種。
截圖技能對于測試人員來說應該是較為重要的一個技能。
在自動化測試中,截圖可以幫助我們直觀的定位錯誤、記錄測試步驟。
記得以前在給某跨國銀行做自動化項目的時候,某銀的PM要求我們自動化測試的每一步至少需要1個截圖,以證明每個功能都被自動化測試給覆蓋過,在這種情況下截圖就成了證明自動化測試有效性的重要手段。
好的測試人員都會截得一手好圖,就跟骨灰級宅男定會吟得一手好詩一般。
webdriver的截圖功能十分強悍。以前在截圖的時候,最麻煩的問題莫過于頁面太長而只能截到一屏,屏幕以外需要移動滾動條才能看到的區域一般是截不到的。現在webdriver解決了這個問題,無論頁面有多長,webdriver都能比較完美的截到完整的頁面。
下面的代碼演示了如何使用webdriver進行截圖:
# -*- coding: utf-8 -*-from selenium import webdriverimport unittestimport os,sys,timeimport 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 是獲取路徑的條件,必須這樣的目錄#設置存儲圖片路徑,測試結果圖片可以按照每天進行區分#通過if進行斷言判斷driver.get("https://baidu.com/")#新創建路徑“.”表示當前整個.py文件的路徑所在的位置,“//”路徑分割符,其中的一個是“/”表示轉義字符pic_path = './/result//image//' + current_time1+'//' + current_time +'.png'print(pic_path)time.sleep(5)print(driver.title)#截取當前url頁面的圖片,并將截取的圖片保存在指定的路徑下面(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.') #通過try拋出異常進行斷言判斷  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方法實現了截圖功能,只需要傳入保存截圖的文件名就可以了,十分方便。
總結
以上所述是小編給大家介紹的Python+selenium實現截圖圖片并保存截取的圖片,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林站長站網站的支持!
新聞熱點
疑難解答