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 sim iso,android – 意外的telephonyManager.getSimCountryIso()行为
  2. flink 1.9.0 编译:flink-shaded-hadoop-2 找不到
  3. python实用技巧(二)
  4. vscode插件开发流程
  5. java公路中轴_技术帖 自行车中轴的种类 入门车友请细读
  6. iOS6和iPhone5使用第三方静态库在真机无法运行的处理
  7. java guardedby_JAVA多线程(五)模式-Guarded Suspension
  8. 拼多多推广效果不好,哪里需要改善?
  9. SyntaxError: Non-UTF-8 code starting with '\xd4' in file C:/PyCharmWorkSpace py on line 2
  10. 熬夜爆肝!C++基础入门大合集【万字干货预警 建议收藏】
  11. SEO优化考核的七大指标
  12. 快速创建树 算法 treeCreate treeview
  13. python 空矩阵_在NumPy中创建空数组/矩阵的方法
  14. 百度翻译api设置 java_Java调用百度API实现翻译
  15. [AJava]FusionCharts Free中文开发指南[使用文档教程]第十一章--FCF中的基本数字格式 ...
  16. 哪些不符合python语言变量名_以下选项中不符合 Python 语言变量命名规则的是( )_学小易找答案...
  17. selenium Grid2环境搭建和基本使用
  18. qt报错意外标记的class
  19. 佳能 cr2格式照片编辑 Photo Professional
  20. 上海交大软件工程教授告诉我,python小白变大牛之路一定要看的书

热门文章

  1. Qt天气助手小程序(QCutomPlot绘图)
  2. 使用QT绘图控件QCustomPlot绘制波形图
  3. 大数据扫黄如此精准,你中招了没
  4. 与次爱的人相濡以沫,与最爱的人相忘于江湖
  5. 自由软件江湖里的码头和规矩
  6. 计算机专业理论试题答案最新,2017年计算机一级考试题库及答案
  7. 手机业务的趋势:移动互联
  8. html邮件签名制作,制作自己的个性化电子邮件签名
  9. 计算机视觉中的数学方法——7. 2 酉空间与酉矩阵
  10. 服务器虚拟成一个共用一台ipsan,IPSAN(四)IPSAN多路径设置(服务端)