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()
截图如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY