selenium提供的截圖功能

Tynam.Yang發表於2018-04-08
get_screenshot_as_file()提供一個截圖功能。
在自動化執行過程中,執行失敗後只能看到程式碼的執行錯誤,而不能直接看到ui上的錯誤,利用截圖儲存下來很容易的進行問題的判斷

先來執行一個通過的用例:
 1 from selenium import webdriver
 2 import time
 3 import os
 4 
 5 def test_search_baidu():
 6     driver = webdriver.Chrome()
 7     driver.implicitly_wait(5) # 隱性等待5秒
 8     driver.get('http://www.baidu.com')
 9 
10     word = '韓國 v 發覺你狗日價格每公斤'
11     driver.find_element_by_id('kw').send_keys(word) # 搜尋框中輸入word
12     driver.find_element_by_id('su').click() # 點選搜尋
13     time.sleep(1)
14 
15     # 判斷,如果word在請求的頁面中則通過,不在則截圖
16     img_path = os.getcwd() # 儲存截圖的路徑
17     if word in driver.page_source:
18         print('testcase is pass!')
19     else:
20         driver.get_screenshot_as_file(img_path+"fail_img.png")
21 
22     # 關閉瀏覽器
23     driver.quit()
24 
25 
26 # 執行程式
27 if __name__ == '__main__':
28     test_search_baidu()
29 # 結果:testcase is pass!

改下程式碼,讓用例執行成功後截圖,失敗後列印測試失敗:

 1 from selenium import webdriver
 2 import time
 3 import os
 4 
 5 def test_search_baidu():
 6     driver = webdriver.Chrome()
 7     driver.implicitly_wait(5) # 隱性等待5秒
 8     driver.get('http://www.baidu.com')
 9 
10     word = '韓國 v 發覺你狗日價格每公斤'
11     driver.find_element_by_id('kw').send_keys(word) # 搜尋框中輸入word
12     driver.find_element_by_id('su').click() # 點選搜尋
13     time.sleep(1)
14 
15     # 判斷,如果word在請求的頁面中通過則截圖
16     img_path = os.getcwd() # 儲存截圖的路徑
17     print(img_path)
18     if word in driver.page_source:
19         driver.get_screenshot_as_file(img_path + "sucess_img.png")
20     else:
21         print('testcase is fail!')
22 
23     # 關閉瀏覽器
24     driver.quit()
25 
26 
27 # 執行程式
28 if __name__ == '__main__':
29     test_search_baidu()

截圖如下:

 

相關文章