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


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

    准备阶段
    1. adb shell screencap -p /sdcard/a.png 命令, 可以实现手机截图并保存到/sdcard/a.png
    2. adb pull /sdcard/a.png . 即可实现导出到当前路径(.代表当前路径)
    3. 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面向对象类形式
    1. 以"一切皆可归类"的思想, 先抽象化出一个类来,
      类名一般建议用"名词", 所以我们命名为"ScreenCapturer",
      代表屏幕捕捉器, 且一般要驼峰式(首字母大写)来规范类的命名.
    2. 养成良好的类的初始化(init)的习惯,
      初始化过程中, 可以pass(什么都不做)
    3. 这个ScreenCapturer 类, 目前只需要一个截屏的函数(动作功能)就足够了,
      函数的命名一般建议用"动词", 所以我们命名为: "screencap" .
    4. 类是一个抽象的事物, 必须实例化成具体的对象后,
      才能进行调用, 所以我们实例化并命名成了s_obj, 表明是一个对象.
    5. 实例化成具体对象后, 对象就可以调用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命令来截图。
    需要自行尝试下。

    更多更好的原创文章,请访问官方网站:www.zipython.com
    自拍教程(自动化测试Python教程)
    原文链接:https://www.zipython.com/#/detail?id=f8396e5cf8b443ec8b68de2fb4a72623
    也可关注“武散人”微信订阅号,随时接受文章推送。

  • 相关阅读:
    .NET数据库编程求索之路11.一些思考
    VMware Workstation安装使用手记
    VS2010无法保存项目文件(.csprj)的问题解决方法
    【转】VC++/MFC(VC6)开发技术精品学习资料下载汇总 (2011.3.10更新)
    .NET数据库编程求索之路9.使用EF实现
    oracle11g新特性:闪回数据归档(Flashback Data Archive)#ocp试验#
    ORACLE口令文件验证与操作系统验证|转|
    闪回flashback#ocp试验#
    expdp数据泵导出操作
    手动模式下热备份的不完全恢复#OCP试验#
  • 原文地址:https://www.cnblogs.com/zipython/p/12436869.html
Copyright © 2020-2023  润新知