做Android手机系统或App测试的过程中,

如果碰到了bug,开发一般会需要测试人员提供当时的bug截图,

如何用Python 批处理脚本, 快速实现截图呢?

准备阶段

adb shell screencap -p /sdcard/a.png 命令, 可以实现手机截图并保存到/sdcard/a.png

adb pull /sdcard/a.png . 即可实现导出到当前路径(.代表当前路径)

os.system可以调用以上 adb 命令行工具

Python批处理脚本形式

其实和写DOS批处理脚本类似,

Python只需要用os.system()函数,

即可快速实现调用各类命令行命令。

#coding=utf-8

import os

print("屏幕截取中...请稍候!")

os.system("adb shell screencap -p /sdcard/a.png")

os.system("adb pull /sdcard/a.png .")

print("截图完毕!")

os.system("pause")

os.system("pause"),建议尽量加上,其含义是暂停程序执行,

等待用户查看脚本执行结果,避免运行完毕后直接自动关闭脚本执行cmd窗口。

Python面向过程函数形式

找到可以封装成一个函数块的小代码块儿, 用函数封装起来.

函数的命名一般建议用"动词", 所以我们命名为: "screencap",

封装好后, 用screencap()函数调用即可。

#coding=utf-8

import os

def screencap(): #封装

print("屏幕截取中...请稍候!")

os.system("adb shell screencap -p /sdcard/a.png")

os.system("adb pull /sdcard/a.png .")

print("截图完毕!")

screencap() #调用

os.system("pause")

Python面向对象类形式

以"一切皆可归类"的思想, 先抽象化出一个类来,

类名一般建议用"名词", 所以我们命名为"ScreenCapturer",

代表屏幕捕捉器, 且一般要驼峰式(首字母大写)来规范类的命名.

养成良好的类的初始化(init)的习惯,

初始化过程中, 可以pass(什么都不做)

这个ScreenCapturer 类, 目前只需要一个截屏的函数(动作功能)就足够了,

函数的命名一般建议用"动词", 所以我们命名为: "screencap" .

类是一个抽象的事物, 必须实例化成具体的对象后,

才能进行调用, 所以我们实例化并命名成了s_obj, 表明是一个对象.

实例化成具体对象后, 对象就可以调用screencap这个函数了.

#coding=utf-8

import os

class ScreenCapturer(): #类名

def __init__(self): #类的初始化

pass

def screencap(self): #定义类内部的函数名

print("屏幕截取中...请稍候!")

os.system("adb shell screencap -p /sdcard/a.png")

os.system("adb pull /sdcard/a.png .")

print("截图完毕!")

s_obj = ScreenCapturer() #类实例化成一个对象

s_obj.screencap() #用对象来调用函数

os.system("pause")

代码运行方式

确保Android设备通过USB线与电脑连接了,adb设备有效连接,

以上代码的3种实现形式都可以直接运行,

比如保存为adb_screencap.py并放在桌面,

每次需要截图的时候,双击运行adb_screencap.py,

就会在桌面上生成一个a.png。

有的Android系统是用screencap命令, 有的是用screenshot命令来截图。

需要自行尝试下。

python处理adb截屏_《自拍教程38》Python_adb一键截屏相关推荐

  1. 《自拍教程38》Python adb一键截屏

    做Android手机系统或App测试的过程中, 如果碰到了bug,开发一般会需要测试人员提供当时的bug截图, 如何用Python 批处理脚本, 快速实现截图呢? 准备阶段 adb shell scr ...

  2. openpyxl安装_自拍教程76Python 一键批量安装第三方包

    案例故事: 在测试环境搭建环节,尤其是需要在新的电脑上搭建Python测试环境时, 可以考虑把日常自动化测试所需要用到的第三方Python包(非自带内置包), 一次性批量安装上. 准备阶段 1.确保p ...

  3. 根据测试路径自动生成测试用例_自拍教程75Python 根据测试用例选择测试资源

    案例故事:Android手机音视频图片解码播放测试,有将近上千条用例, 包含了不同的音视频图片文件,每条用例都至少对应了一个测试资源文件.整个测试资源仓库,将近100G,一些视频比如High Prof ...

  4. direct wifi 投屏_告别Wifi直接投AOC无线投屏显示器轻松用

    显示器领域内不乏一些功能实用的创新技术,也不乏一些与传统显示器相比,显得"非同一般"的显示器.今天我们要聊的主题,就是AOC的一款"无线投屏显示器",顾名思义, ...

  5. direct wifi 投屏_direct wifi 投屏_告别Wifi直接投AOC无线投屏显示器轻松用

    显示器领域内不乏一些功能实用的创新技术,也不乏一些与传统显示器相比,显得"非同一般"的显示器.今天我们要聊的主题,就是AOC的一款"无线投屏显示器",顾名思义, ...

  6. win10无线投屏_日臻薄技 | 手机如何投屏到电脑

    手机怎么投屏到电脑显示器?经过多方搜寻,我找到了以下三种方法:1通过Win10自带的投影功能 你的电脑系统是Win7还是Win10?现在应该都用上Win10了吧,没用上你就落伍了.Win10怎么让手机 ...

  7. ensp启动设备蓝屏_超全超详细的电脑蓝屏问题解决方案汇总

    生活太难了!每天搬砖已经够不容易,电脑还作妖: 设计图还差最后一个图层,蓝屏了!!财务工资表格马上统计完,蓝屏了?!熬了一宿马上写完1万字稿件,蓝屏了- 今天,我就带大家轻松搞定蓝屏. 什么是蓝屏 蓝 ...

  8. win10间歇性闪屏_今天解读win10桌面自动刷新闪屏的完全解决手法

    今天又有网友来问小编win10桌面自动刷新闪屏的问题,这个问题之前都已经解答过了.win10桌面自动刷新闪屏这样的不常见的问题,还真把一些大神给弄懵了.那么这个win10桌面自动刷新闪屏问题该如何才能 ...

  9. Android双屏锁屏,教大家vivonex双屏版怎么一键锁屏的方法

    最近有挺多人都跟小编说想要了解vivonex双屏版怎么一键锁屏,那么或许你会好奇为什么要了解vivonex双屏版怎么一键锁屏,这里小编就来给大家细细的说道说道,如今很多小伙伴们在玩手机与各种电子设备的 ...

  10. python处理adb截屏_《自拍教程38》Python adb一键截屏

    做Android手机系统或App测试的过程中, 如果碰到了bug,开发一般会需要测试人员提供当时的bug截图, 如何用Python 批处理脚本, 快速实现截图呢? 准备阶段 adb shell scr ...

最新文章

  1. python ndarray
  2. CCF-GAIR 2020 全球人工智能和机器人峰会今日开幕
  3. 洛谷 P3383 【模板】线性筛素数
  4. python 删除n天前文件_Linux 按时间批量删除文件命令(删除N天前文件)
  5. 【深度学习】神经网络模型特征重要性可以查看了!!!
  6. Linux查看tar实用程序,linux tar指令常用选项
  7. 1284:摘花生《信息学奥赛一本通》
  8. django 1.8 官方文档翻译:5-1-2 表单API
  9. 理解CSRF(跨站请求伪造)
  10. 教你如何用 Linux Shell脚本判断IP是否合法(多种方法)
  11. 电子元器件如何检测和筛选
  12. Python常用标准库、模块
  13. 《私募股权基金投资基础知识》---第五章
  14. Flink SQL 流计算可视化 UI 平台
  15. composer设置镜像
  16. 为什么在AndroidManifest.xml中Activity的theme用不了Theme.Light.NoTitleBar?
  17. CheatSheet——OpenCV
  18. 思岚科技再次出征CES 看点十足
  19. 汽车价格预测回归分析模型
  20. delphi bde mysql_Delphi- 连接MySQL数据库BDE

热门文章

  1. java 定义整数数组_JAVA中数组的正确定义方法是什么?
  2. 联合省选2022游记
  3. html svg波浪,CSS3+SVG 实现波浪滚动效果
  4. 找玩具 概率 dfs
  5. Wireshark入门与进阶---Capture Options各项的含义与设定
  6. c语言窗口贴图,c语言添加图片
  7. nodejs模块加载的猜想
  8. 【错误解决】Ubuntu 配置ibus中文输入法后却不能添加
  9. 【OS】Linux环境下配置固定IP地址--静态IP地址(不能上外网问题)
  10. 阿里云云服务器固定带宽和带宽按量付费的区别