
get_screenshot_as_file()提供一个截屏功能。在自动化执行过程中,执行失败后只能看到代码的运行错误,而不能直接看到ui上的错误,利用截屏保存下来很容易的进行问题的判断 先来执行一个通过的用例:
from selenium import webdriver import time import os def test_search_baidu(): driver = webdriver.Chrome() driver.implicitly_wait(5) # 隐性等待5秒 driver.get('http://www.baidu.com') word = '韩国 v 发觉你狗日价格每公斤' driver.find_element_by_id('kw').send_keys(word) # 搜索框中输入word driver.find_element_by_id('su').click() # 点击搜索 time.sleep(1) # 判断,如果word在请求的页面中则通过,不在则截屏 img_path = os.getcwd() # 保存截图的路径 if word in driver.page_source: print('testcase is pass!') else: driver.get_screenshot_as_file(img_path+"fail_img.png") # 关闭浏览器 driver.quit() # 运行程序 if __name__ == '__main__': test_search_baidu() # 结果:testcase is pass!
改下代码,让用例执行成功后截图,失败后打印测试失败:
from selenium import webdriver import time import os def test_search_baidu(): driver = webdriver.Chrome() driver.implicitly_wait(5) # 隐性等待5秒 driver.get('http://www.baidu.com') word = '韩国 v 发觉你狗日价格每公斤' driver.find_element_by_id('kw').send_keys(word) # 搜索框中输入word driver.find_element_by_id('su').click() # 点击搜索 time.sleep(1) # 判断,如果word在请求的页面中通过则截图 img_path = os.getcwd() # 保存截图的路径 print(img_path) if word in driver.page_source: driver.get_screenshot_as_file(img_path + "sucess_img.png") else: print('testcase is fail!') # 关闭浏览器 driver.quit() # 运行程序 if __name__ == '__main__': test_search_baidu()
截图如下: