selenium提供的截图功能

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()

截图如下:

 

posted @ 2018-04-08 18:36  Tynam.Yang  阅读(585)  评论(0编辑  收藏  举报