目录

1. 截图方法

2. 示例代码

2.1 捕获异常实现截图

2.2 装饰器实现截图


1. 截图方法

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

2. 示例代码

2.1 捕获异常实现截图

# -*- coding: utf-8 -*-
# @Time    : 2021/1/23
# @Author  : 大海
import time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementExceptiondriver = webdriver.Chrome()driver.get('https://baidu.com')# 获取当前时间
nowTime = time.strftime("%Y%m%d.%H.%M.%S")
file_path = './%s.png' % nowTime  # 格式化字符串# 发生异常时截图,捕获异常
try:driver.find_element_by_id('kw1').send_keys('selenium')
except NoSuchElementException:   driver.get_screenshot_as_file(file_path)
finally:driver.close()

2.2 装饰器实现截图

# -*- coding: utf-8 -*-
# @Time    : 2021/1/23
# @Author  : 大海
import time
from functools import wraps
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementExceptiondriver = webdriver.Chrome()
driver.get('https://baidu.com')# 获取当前时间
nowTime = time.strftime("%Y%m%d.%H.%M.%S")
file_path = './%s.png' % nowTime  # 格式化字符串# 装饰器
def screenshot(func):@wraps(func)def wrapper(*args, **kwargs):try:return func(*args, **kwargs)except Exception as e:driver.get_screenshot_as_file(file_path)print(e)finally:driver.close()return wrapper# 发生异常时截图
@screenshot
def screenshot_example():driver.find_element_by_id('kw1').send_keys('selenium')# 调用函数
screenshot_example()

17-截图screenshot相关推荐

  1. screenshot python_python 截图screenshot处理

    from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains impo ...

  2. 调用摄像头_摄像头 | 浏览器调用摄像头并实现截图保存的效果

    ​为了在QT上实现打开摄像头,拍照等操作.就写了这个. 1. 写一个vue组件 先写一个vue的组件,其内容基本如下: <el-button type="primary" @ ...

  3. video全屏操作栏自定义样式js 指定元素全屏视频截图下载

    目录 1. 页面结构 2. 全屏方法 3. 截图方法 4. 样式代码 5. 效果截图 6. 附上完整代码 最近遇到的需求就是重新video标签的控制栏的样式,包括进度条.音量.倍速.全屏等样式,在正常 ...

  4. 屏幕截图 take screenshot

    ScreenCapture.CaptureScreenshotAsTexture yield return new WaitForEndOfFrame(); var screenShotTexture ...

  5. java使用Chrome+Selenium+Screenshot 实现浏览器截长图

    场景:需要长截图整个网站; 效果: 我进行了缩小和模糊处理,涉及到公司业务.模糊的可以看到是忽略了浏览器的头部,保留了完整的整个网页 解决思路: 模拟用户打开浏览器,然后截图,这边涉及到几个问题 浏览 ...

  6. Vue 微信网页截图实现

    项目需求:微信网页,点击实现网页截图效果.使用 html2canvas 实现. 具体实现如下: 安装 html2canvas 1.0.0-rc.4 版本 (处理 Android 与 IOS 兼容问题) ...

  7. 验证码的识别(极验验证码)

    本文介绍了几种常见的验证码类型以及它们的识别方法,包括图形验证码.极验滑动验证码.点触验证码和微博宫格验证码等.其中,针对图形验证码的识别方法是使用OCR技术,并且需要安装tesserocr库.我们可 ...

  8. meterpreter会话渗透利用常用的32个命令归纳小结

    仅作渗透测试技术实验之用,请勿针对任何未授权网络和设备. https://www.cnblogs.com/ssooking/p/6192995.html run vnc 无法操作的远程桌面 1.bac ...

  9. metasploit msfconsole 命令

    metasploit msfconsole 命令 metasploit msfconsole 命令 复制代码 msf > help db_autopwn Commands =========== ...

最新文章

  1. R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数
  2. Oracle 9i 升级至Oracle10g数据库最好的方法
  3. 李永乐线性代数手写笔记-向量
  4. SpringBoot学习笔记(一)整合Mybatis
  5. 引用数据类型的深拷贝
  6. 记事本贪吃蛇游戏代码_厉害了,程序员28行代码写贪吃蛇游戏,附源码!
  7. php 结构体_php基础知识集合
  8. 如何用栈实现浏览器的前进和后退?
  9. 在线学习新编程 技巧全攻略
  10. 全国计算机英语四六级准考证打印准考证号,2017全国大学生英语四六级准考证打印...
  11. STM32 TIMER DIAGRAM
  12. windbg 修改内存和寄存器指令
  13. python识别中文中的名字地点时间_python中判断时间间隔的问题
  14. Xshell上传文件的方法和在docker打开lrzsz
  15. Deepin 与 Win10 双系统 Deepin无法启动且没有引导项问题
  16. USACO-Section3.2 Feed Ratios【克莱默法则】
  17. sessionStorage 、localStorage 和 cookie
  18. oracle创建用户,授权connect,resource后无法建表
  19. oracle 常见报错
  20. java权限控制是什么_论Java访问权限控制的重要性

热门文章

  1. 如何查看win10系统的异常关机日志
  2. ADS(Advanced Design system)创建Symbol并放置
  3. B2C购物网站常用分类目录
  4. 推荐学习!2021年Android春招面试经历,系列篇
  5. 不一样的武汉——武汉印象
  6. 大龄女青年,开发转人工智能,一举进入外企。 From交大人工智能中心
  7. 一个好玩的小游戏破解。
  8. OpenBionics机械手项目介绍|BCIduino社区整理
  9. java开发的职业发展路线是怎样的?
  10. linux 关闭snmp服务,CentOS 7 SNMP端口始终关闭