使用python编写android截屏脚本双击运行即可

yipeiwu_com6年前Python基础

测试的过程中经常需要截取屏幕,通常的做法是使用手机自带的截屏功能,然后将截屏文件复制出来,这种方法的优点是不需要连接数据线就可截屏,缺点则是生成的截屏文件命名是随机命名的,复制出来也比较麻烦。另一种方法是使用PC端的手机助手类软件。

这里使用python编写一个截屏的脚本,双击运行脚本就OK,截屏成功后会将截屏文件已当前时间命名,并保存在存放脚本的当前路径的screenshot文件夹下:

#!/usr/bin/env python 

import os 
import time 

PATH = lambda p: os.path.abspath(p) 

def screenshot(): 
path = PATH(os.getcwd() + "/screenshot") 
timestamp = time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time())) 
os.popen("adb wait-for-device") 
os.popen("adb shell screencap -p /data/local/tmp/tmp.png") 
if not os.path.isdir(PATH(os.getcwd() + "/screenshot")): 
os.makedirs(path) 
os.popen("adb pull /data/local/tmp/tmp.png " + PATH(path + "/" + timestamp + ".png")) 
os.popen("adb shell rm /data/local/tmp/tmp.png") 
print "success" 

if __name__ == "__main__": 
screenshot()

相关文章

python多线程扫描端口示例

复制代码 代码如下:# -*- coding: cp936 -*-import socketfrom threading import Thread,activeCount,Lockfr...

浅谈Django中view对数据库的调用方法

question: Django中对数据库的调用非常的隐蔽,在各种复杂的模块互相拼接继承中很难发现获取数据库内容的部分 来,开始试图理解一下下 首先,数据库中的表对应的是model中的...

使用Fabric自动化部署Django项目的实现

文中涉及的示例代码,已同步更新到HelloGitHub-Team 仓库 在上一篇教程中,我们通过手工方式将代码部署到了服务器。整个过程涉及到十几条命令,输了 N 个字符。一旦我们本地的代...

对YOLOv3模型调用时候的python接口详解

对YOLOv3模型调用时候的python接口详解

需要注意的是:更改完源程序.c文件,需要对整个项目重新编译、make install,对已经生成的文件进行更新,类似于之前VS中在一个类中增加新函数重新编译封装dll,而python接口...

python重试装饰器示例

利用python 写一些网络服务的时候,当网络状况不好,或者资源占用过多,任务拥塞的情况下,总会抛出一些异常,当前任务就被终止了,可以很好的利用@装饰器,写一个重试的装饰器,这样比较py...