《自拍教程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
也可關注“武散人”微信訂閱號,隨時接受文章推送。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章