17-截图screenshot
目录
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相关推荐
- screenshot python_python 截图screenshot处理
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains impo ...
- 调用摄像头_摄像头 | 浏览器调用摄像头并实现截图保存的效果
为了在QT上实现打开摄像头,拍照等操作.就写了这个. 1. 写一个vue组件 先写一个vue的组件,其内容基本如下: <el-button type="primary" @ ...
- video全屏操作栏自定义样式js 指定元素全屏视频截图下载
目录 1. 页面结构 2. 全屏方法 3. 截图方法 4. 样式代码 5. 效果截图 6. 附上完整代码 最近遇到的需求就是重新video标签的控制栏的样式,包括进度条.音量.倍速.全屏等样式,在正常 ...
- 屏幕截图 take screenshot
ScreenCapture.CaptureScreenshotAsTexture yield return new WaitForEndOfFrame(); var screenShotTexture ...
- java使用Chrome+Selenium+Screenshot 实现浏览器截长图
场景:需要长截图整个网站; 效果: 我进行了缩小和模糊处理,涉及到公司业务.模糊的可以看到是忽略了浏览器的头部,保留了完整的整个网页 解决思路: 模拟用户打开浏览器,然后截图,这边涉及到几个问题 浏览 ...
- Vue 微信网页截图实现
项目需求:微信网页,点击实现网页截图效果.使用 html2canvas 实现. 具体实现如下: 安装 html2canvas 1.0.0-rc.4 版本 (处理 Android 与 IOS 兼容问题) ...
- 验证码的识别(极验验证码)
本文介绍了几种常见的验证码类型以及它们的识别方法,包括图形验证码.极验滑动验证码.点触验证码和微博宫格验证码等.其中,针对图形验证码的识别方法是使用OCR技术,并且需要安装tesserocr库.我们可 ...
- meterpreter会话渗透利用常用的32个命令归纳小结
仅作渗透测试技术实验之用,请勿针对任何未授权网络和设备. https://www.cnblogs.com/ssooking/p/6192995.html run vnc 无法操作的远程桌面 1.bac ...
- metasploit msfconsole 命令
metasploit msfconsole 命令 metasploit msfconsole 命令 复制代码 msf > help db_autopwn Commands =========== ...
最新文章
- R语言dataframe计算满足筛选条件的行的个数(筛选满足条件的数据行并计数):类似于excel的countif函数
- Oracle 9i 升级至Oracle10g数据库最好的方法
- 李永乐线性代数手写笔记-向量
- SpringBoot学习笔记(一)整合Mybatis
- 引用数据类型的深拷贝
- 记事本贪吃蛇游戏代码_厉害了,程序员28行代码写贪吃蛇游戏,附源码!
- php 结构体_php基础知识集合
- 如何用栈实现浏览器的前进和后退?
- 在线学习新编程 技巧全攻略
- 全国计算机英语四六级准考证打印准考证号,2017全国大学生英语四六级准考证打印...
- STM32 TIMER DIAGRAM
- windbg 修改内存和寄存器指令
- python识别中文中的名字地点时间_python中判断时间间隔的问题
- Xshell上传文件的方法和在docker打开lrzsz
- Deepin 与 Win10 双系统 Deepin无法启动且没有引导项问题
- USACO-Section3.2 Feed Ratios【克莱默法则】
- sessionStorage 、localStorage 和 cookie
- oracle创建用户,授权connect,resource后无法建表
- oracle 常见报错
- java权限控制是什么_论Java访问权限控制的重要性