17-截图screenshot

简介: 17-截图screenshot

1. 截图方法

  • driver.get_screenshot_as_file(filename):将当前窗口的屏幕截图转换为PNG图像文件保存
  • get_screenshot_as_png():获取作为二进制数据的当前窗口的截图
  • get_screenshot_as_base64():以base64编码字符串的形式获取当前窗口的屏幕截图,一般使用在HTML中的链接图片

2. 示例代码

 2.1 捕获异常实现截图

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/1/23
3. # @Author  : 大海
4. import time
5. from selenium import webdriver
6. from selenium.common.exceptions import NoSuchElementException
7. 
8. driver = webdriver.Chrome()
9. 
10. driver.get('https://baidu.com')
11. 
12. # 获取当前时间
13. nowTime = time.strftime("%Y%m%d.%H.%M.%S")
14. file_path = './%s.png' % nowTime  # 格式化字符串
15. 
16. # 发生异常时截图,捕获异常
17. try:
18.     driver.find_element_by_id('kw1').send_keys('selenium')
19. except NoSuchElementException:   
20.     driver.get_screenshot_as_file(file_path) 
21. finally:
22.     driver.close()

 2.2 装饰器实现截图

1. # -*- coding: utf-8 -*-
2. # @Time    : 2021/1/23
3. # @Author  : 大海
4. import time
5. from functools import wraps
6. from selenium import webdriver
7. from selenium.common.exceptions import NoSuchElementException
8. 
9. driver = webdriver.Chrome()
10. driver.get('https://baidu.com')
11. 
12. # 获取当前时间
13. nowTime = time.strftime("%Y%m%d.%H.%M.%S")
14. file_path = './%s.png' % nowTime  # 格式化字符串
15. 
16. 
17. # 装饰器
18. def screenshot(func):
19.     @wraps(func)
20. def wrapper(*args, **kwargs):
21. try:
22. return func(*args, **kwargs)
23. except Exception as e:
24.             driver.get_screenshot_as_file(file_path)
25. print(e)
26. finally:
27.             driver.close()
28. 
29. return wrapper
30. 
31. 
32. # 发生异常时截图
33. @screenshot
34. def screenshot_example():
35.     driver.find_element_by_id('kw1').send_keys('selenium')
36. 
37. 
38. # 调用函数
39. screenshot_example()


相关文章
|
存储
Typora上传图片后提示 “image load failed“ 无法加载出图片
Typora上传图片后提示 “image load failed“ 无法加载出图片
2264 0
Typora上传图片后提示 “image load failed“ 无法加载出图片
|
缓存 前端开发 API
关于安卓控件截图的探索(一)
安卓控件截图的探索
154 0
|
Android开发 iOS开发
iOS实现点击图片放大&长按保存图片
在项目中免不了会遇到,实名认证上传身份证、绑定银行卡等功能。在实际操作中呢,会涉及到上传图片,在页面布局时,可能图片不是一张,考虑到布局的美观等因素,显示图片的位置变得很小,如果想查看上传的图片是否清晰,内容是否完整,可能就需要放大才能实现,下面就和大家分享一下我封装的一类,完美的实现了图片的缩放功能。
267 0
Cypress系列(60)- 运行时的截图和录屏,screenshot() 命令详解
Cypress系列(60)- 运行时的截图和录屏,screenshot() 命令详解
622 0
Cypress系列(60)- 运行时的截图和录屏,screenshot() 命令详解
DHL
|
前端开发 Android开发
获取视频截图
获取视频截图
DHL
305 0