做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命令來截圖,
需要自行嘗試下,
更多更好的原創文章,請訪問官方網站:www.zipython.com
自拍教程(自動化測驗Python教程)
原文鏈接:https://www.zipython.com/#/detail?id=f8396e5cf8b443ec8b68de2fb4a72623
也可關注“武散人”微信訂閱號,隨時接受文章推送,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/181244.html
標籤:Python
