def base64_to_image(base64_str):base64_data = re.sub('^data:image/.+;base64,', '', base64_str)byte_data = base64.b64decode(base64_data)# image_data = BytesIO(byte_data)# img = Image.open(image_data)return byte_datadef get_jt(driver):try:img = None# 取出页面的宽度和高度page_width = driver.execute_script("return document.body.scrollWidth")page_height = driver.execute_script("return document.body.scrollHeight")# 直接开启设备模拟,不要再手动开devtools了,否则截图截的是devtools的界面!driver.execute_cdp_cmd('Emulation.setDeviceMetricsOverride',{'mobile': False, 'width': page_width, 'height': page_height, 'deviceScaleFactor': 1})# 执行截图res = driver.execute_cdp_cmd('Page.captureScreenshot', {'fromSurface': True})# 等待截图完成if bool(res) and isinstance(res, dict) and "data" in res:img = base64_to_image(res["data"])# 关闭设备模拟driver.execute_cdp_cmd('Emulation.clearDeviceMetricsOverride', {})return imgexcept Exception as e:s = sys.exc_info()logger.error("{}[line:{}]: {}:{}".format(FILE_NAMES, _getframe().f_lineno, "", '错误行数:' + str(s[2].tb_lineno)))logger.error("{}[line:{}]: {}:{}".format(FILE_NAMES, _getframe().f_lineno, "", '错误明细是' + str(e.__class__.__name__) + str(e)))return Nonedef save_screenshot(driver, file_name):img = get_jt(driver)if img is None:driver.save_screenshot(file_name)else:with open(file_name, "wb") as f:f.write(img)

selenium 截长图相关推荐

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

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

  2. python selenium截图_利用 Python + Selenium 实现对页面的指定元素截图(可截长图元素)...

    对WebElement截图 WebDriver.Chrome自带的方法只能对当前窗口截屏,且不能指定特定元素.若是需要截取特定元素或是窗口超过了一屏,就只能另辟蹊径了. WebDriver.Phant ...

  3. 【基础知识】截长图的方法以及防止截图时下拉框自动收回的方法

    截长图的方法: 博主之前使用的tim,不具备截长图的功能,之后百度了很多的方法,最后发现QQ的截长图功能最好用,很不解,tim不应该是偏向于办公吗,这种功能竟然还能阉割? 使用工具:QQ最新版 使用方 ...

  4. UIScrollView截长图

    iOS UIScrollView截长图优化 保留页面上的阴影等细节显示. extension UIScrollView {/**scrollview截长图可以保留阴影图片拼接*/func snapSh ...

  5. android 截长图 方法,Android实现截屏与截长图功能

    本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...

  6. 华为手机截屏怎么截长图_华为手机竟然有6种截屏方法,你用过几种?3种以上的手机没白买...

    很多时候我们都喜欢通过手机截图来对一些信息进行保存分享,那么常用华为手机,关于华为手机截图方法你知道几种呢? 悄悄告诉你,其实华为手机截图方法多达6中,各种花样截图方法都有,就是可惜了很多小伙伴都不知 ...

  7. 华为手机截屏怎么截长图_华为手机5种常用截屏方式,教你轻松定格屏幕精彩瞬间...

    手机上的精彩内容这么多,想要截图发好友,你知道怎么截才最顺手嘛? 华为手机提供了多种实用又快捷的截屏方法,总有一种适合你,快来看看吧~ 隔空截屏 抓取截屏,酷炫手势 在屏幕正前方20~40厘米,伸开手 ...

  8. win10系统picpick截图工具自动滚动截长图方法

    描述:win10系统picpick截图工具自动滚动截长图方法 步骤: 使用截图工具,使用顶部菜单栏,选择截取滚动窗口功能 此时会自动识别滚动窗口,单机滚动条,即可自动滚动,如果只滑动一次就结束了,请将 ...

  9. 截屏、录屏、截长图快捷键汇总

    文章目录 windows自带 qq自带 截长图 snipaste 小知识: 相关链接   工作生活中,我们经常要用到截图功能.如果不想安装截图工具,你可以用以下方式: windows自带 最快速,但是 ...

  10. Android实现截屏和截长图功能的几种方法

    一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...

最新文章

  1. Android开发中如何使用RecyclerView
  2. 【力荐】Exadata火线救援:10TB级数据修复经典案例详解!
  3. mysql 为游标赋值_mysql 存储过程之游标
  4. 倒数日怎么设置起始日_起始价131亿!杭州江河汇流区85万方综合体招标延期
  5. 超干货 | 在线教育增长实操者案例分享:如何玩转教育增长模型?
  6. if的作用域问题 *输出1~6的随机数*
  7. oracle成本模块培训,Oracle App 培训笔记(5) -- 成本管理模块表结构整理 续
  8. 支付宝集成——如何在回调地址中使用自定义参数
  9. 怎么用java做todolist_[Java教程]JavaScript jQuery 任务清单 ToDoList
  10. 【Xamarin开发 Android 系列 1】环境部署搭建
  11. 微信小程序获取外部图标iconfont
  12. 2022年熔化焊接与热切割考试模拟100题及在线模拟考试
  13. 个人邮箱怎么在微信里登陆?
  14. 视频切割:python将视频文件按秒存储成图片
  15. HTML标签之常见格式标签(1)
  16. 软件测试分类-按照开发阶段划分
  17. spring boot +mybatis plus +html 最佳实践项目
  18. java判断数据库是否存在_java判断数据库是否存在的方法
  19. windows C++多线程(三):线程终止结束ExitThread与TerminateThread
  20. 【C语言】goto语句以及strcmp和system的学习

热门文章

  1. cuteftp pro 3.2多线程下载导致文件MD5校验值改变
  2. 飞翔pdf生成html,pdf转换成html转换器
  3. H5上传从微信保存的图片提示格式不对
  4. codeblock调试
  5. 一文搞懂Handler机制原理
  6. 极域电子书包课堂管理系统怎么控屏_极域电子教室控制软件操作手册
  7. 分布式系统架构的优缺点
  8. mega软件 linux,Linux系统下使用MegaCli软件对磁盘阵列进行操作
  9. matlab模拟高斯光束波前相位分布,拉盖尔-高斯光束空间传播波前畸变的RMS评估...
  10. 安卓开发硬件开发之-大华条码秤开发1