selenium四种截图方式
1.get_screenshot_as_file()
from selenium import webdriver driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.get_screenshot_as_file("./img/save.png")
driver.quit()
get_screenshot_as_file方法只能截取当前页面全屏,
2.save_screenshot()
save_screenshot()其实和save_screenshot_as_file()用法相同,两者没什么区别,我们可以看下save_screenshot()的封装

使用时最后返回的还是save_screenshot_as_file()方法
3.get_screenshot_as_png()
get_screenshot_as_png()方法截取后直接是二进制,并不能像前两个方法一样直接生成图片,我们再写入本地即可。
from selenium import webdriver
from selenium.webdriver.common.by import By driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.implicitly_wait(10)
img_save = driver.find_element(by=By.XPATH, value="//img[@id='s_lg_img']")
a = driver.get_screenshot_as_png() # 截取后直接是二进制
with open("./img/two01.jpg", mode="wb")as f:
f.write(a)
driver.quit()
以上用法是截取页面全屏,还可根据定位的元素截取相应的图片
img_save = driver.find_element(by=By.XPATH, value="//img[@id='s_lg_img']")
a = img_save.screenshot_as_png # 截取后直接是二进制,无括号
with open("./img/two01.jpg", mode="wb")as f:
f.write(a)
driver.quit()
4.get_screenshot_as_base64()
get_screenshot_as_base64()截取后的图片是以base64加密过的,需要解密后再写入本地。
import base64 from selenium import webdriver
from selenium.webdriver.common.by import By driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
driver.implicitly_wait(10)
img_save = driver.find_element(by=By.XPATH, value="//img[@id='s_lg_img']")
a = driver.get_screenshot_as_base64() # base64加密 b = base64.b64decode(a) # 解密
with open("./img/two.jpg", mode="wb")as f:
f.write(b)
driver.quit()
与get_screenshot_as_png()相似的是可根据定位的元素截取相应的图片
img_save = driver.find_element(by=By.XPATH, value="//img[@id='s_lg_img']")
a = img_save.screenshot_as_base64 # base64加密,无括号
b = base64.b64decode(a) # 解密
with open("./img/two.jpg", mode="wb")as f:
f.write(b)
文章来源:https://www.cnblogs.com/lihongtaoya/ ,请勿转载
selenium四种截图方式的更多相关文章
- Selenium&Appium四种等待方式
一.摘要 本博文主要介绍自动化测试中,无论是selenium或是Appium的四种等待方式,合理的使用等待对代码的稳定性,测试效率都有很大的提高 隐式等待:是在尝试发现某个元素的时候,如果没能立刻发现 ...
- Android开发之基本控件和详解四种布局方式
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...
- python selenium 三种等待方式详解[转]
python selenium 三种等待方式详解 引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待 ...
- JMeter四种参数化方式
JMeter参数化是指把固定的数据动态化,这样更贴合实际的模拟用户请求,比如模拟多个不同账号.JMeter一共有四种参数化方式,分别是: CSV Data Set Config Function He ...
- lua中for循环的四种遍历方式
lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3 key,value pairs 取每一 ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览
Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览 作为一个完成的应用程序,数据存储操作是必不可少的. ...
- HttpwebClient的四种请求方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷. 本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider
ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...
- Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...
随机推荐
- 云小课|基于华为云WAF的日志运维分析,构筑设备安全的城墙
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:云日志服务用于收集 ...
- 数仓ETL系统:给强大的“心脏”配上“超级流水线”
摘要:在数据仓库平台建设过程中,数据的加载.卸载,各层数据模型之间的数据流转,业务规则的实现等等数据加工过程都会以ETL任务的方式实现. 一.前言 在数据仓库平台建设过程中,数据的加载.卸载,各层数据 ...
- java算法易筋经:常见java-API使用技巧
摘要:算法练习的本质也在于锻炼编程思维,强化程序员的内力.因此给自己后面会持续更新的算法技巧内容简称算法易筋经. 本文分享自华为云社区<<java算法易筋经>之常见java-API使 ...
- 使用 quartz-solon-plugin 开发定时任务(新)
(一)新建一个 maven 空项目 (二)添加 maven 引用 <dependency> <groupId>org.noear</groupId> <art ...
- Dom4j 保存XML HL7-V3
dom4j selectNodes 取不到值 因为XML带有命名空间 HL7 Dom4j 保存XML String xmlPath = "D:\\BS004.xml"; Strin ...
- 巧用别名和 sh 脚本,adb 快速截图和录屏,提高你的效率
前言 在平时开发过程中,我们经常需要截图和录制视频,尤其是客户端开发和测试. 可能有一些人的姿势是这样的.在电脑上开个模拟器,使用第三方工具后进行截图和录屏.还有一种最原始的方式,在手机上截图和录制视 ...
- #2051:Bitset(进制转化)
Problem Description Give you a number on base ten,you should output it on base two.(0 < n < 10 ...
- Codeforces Round #736 (Div. 2) A~D
比赛链接:Here 1549A. Gregor and Cryptography 不难,观察一下就容易得知要想使得 \(p\pmod a = p\pmod b\) 令 \(a = 2,b=p - 1\ ...
- fetch与axios
- Vue+Element前端导入导出Excel
1 <el-upload 2 class="upload-demo" 3 :action="uploadUrl()" 4 :limit="1&q ...