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四种截图方式的更多相关文章

  1. Selenium&Appium四种等待方式

    一.摘要 本博文主要介绍自动化测试中,无论是selenium或是Appium的四种等待方式,合理的使用等待对代码的稳定性,测试效率都有很大的提高 隐式等待:是在尝试发现某个元素的时候,如果没能立刻发现 ...

  2. Android开发之基本控件和详解四种布局方式

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...

  3. python selenium 三种等待方式详解[转]

    python selenium 三种等待方式详解   引言: 当你觉得你的定位没有问题,但是却直接报了元素不可见,那你就可以考虑是不是因为程序运行太快或者页面加载太慢造成了元素不可见,那就必须要加等待 ...

  4. JMeter四种参数化方式

    JMeter参数化是指把固定的数据动态化,这样更贴合实际的模拟用户请求,比如模拟多个不同账号.JMeter一共有四种参数化方式,分别是: CSV Data Set Config Function He ...

  5. lua中for循环的四种遍历方式

    lua中for的四种遍历方式区别 table.maxn 取最大的整数key #table 从1开始的顺序整数最大值,如1,2,3,6 #table == 3   key,value pairs 取每一 ...

  6. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (一) —— 总览

    Android数据的四种存储方式SharedPreferences.SQLite.Content Provider和File (一) —— 总览   作为一个完成的应用程序,数据存储操作是必不可少的. ...

  7. HttpwebClient的四种请求方式

    最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷.      本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...

  8. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  9. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (四) —— ContentProvider

    ContentProvider是安卓平台中,在不同应用程序之间实现数据共享的一种机制.一个应用程序如果需要让别的程序可以操作自己的数据,即可采用这种机制.并且此种方式忽略了底层的数据存储实现,Cont ...

  10. Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite

    SQLite是一种转为嵌入式设备设计的轻型数据库,其只有五种数据类型,分别是: NULL: 空值 INTEGER: 整数 REAL: 浮点数 TEXT: 字符串 BLOB: 大数据 在SQLite中, ...

随机推荐

  1. 火山引擎DataLeap一站式数据治理解决方案及平台架构

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在字节跳动内部,DataLeap数据平台数据治理团队致力于建立一站式.全链路的数据治理解决方案平台. 数据治理的概 ...

  2. Python分析大数据,推荐四款加速器

    在数据科学计算.机器学习.以及深度学习领域,Python 是最受欢迎的语言.Python 在数据科学领域,有非常丰富的包可以选择,numpy.scipy.pandas.scikit-learn.mat ...

  3. 【Flask】cbv源码分析 flask模板使用 flask请求与响应 session及源码分析 闪现flash 请求扩展

    目录 上节回顾 今日内容 1 cbv分析 1.1 源码分析 2 模板 2.1 app.py 2.2 index.html 3 请求与响应 4 session及源码分析 4.1 session的使用 4 ...

  4. MB51增强

    一.在MB51报表中新增列 包含文件RM07DOCS_GENERATED的itab结构中,新增字段 在RM07DOCS中的detail_list子例程中添加查询逻辑 在子例程build_fieldca ...

  5. WPF Window无边框窗体阴影效果

    WPF通过WindowChrome实现Window无边框窗体阴影效果 代码: <Window x:Class="SunCreate.PACP.Client.UI.GIS.CameraD ...

  6. Spring注解@Resource和@Autowired区别对比 (附 Maven 引入方法)

    @Resource 导入方法: <dependency> <groupId>javax.annotation</groupId> <artifactId> ...

  7. <vue 基础知识 9、v-model使用 input、radio、checkbox、select、修饰符>

    代码结构 一.     01-v-model的基本使用 Vue中使用v-model指令来实现表单元素和数据的双向绑定 1.效果 2.代码 01-v-model的基本使用.html <!DOCTY ...

  8. 7 Englishi 词根

    1.跟直播,跟复习课,完成作业 2. 基础差加餐,听录播 3.如何听课 4.单词学习反复多次 如何记笔记 语块的汉语意思 单词的记忆方式和固定表达 俩种方式记忆单词 语块关联记忆 基础词根词缀(6节课 ...

  9. 1 Englishi 词根

    1 ab  离去,相反, 不 (负能量的) abnormal abuse 2 anti  反对,相反 antiwar antiaging antiforeign antinoise 3 co-/col ...

  10. freeswitch配置SBC的方案

    概述 freeswitch 是一款好用的开源软交换平台. 但是,fs不是专为SBC而开发的,所以需要做一些定制化的配置和开发. 本文主要介绍如何利用fs的基本功能配置一个简单的SBC方案,满足一般化需 ...