目录

界面版

利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装。代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx, subprocess, os, platform class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Android Auty', size=(350, 300))
self.panel = wx.Panel(self, -1)
# Android devices combox.
combox_list = []
r = execute_shell("adb devices")
for i in range(1, len(r) - 1):
if r[i].startswith("*") and r[i].endswith("*"):
pass
else:
combox_list.append(r[i].split("\t")[0])
wx.StaticText(self.panel, -1, "Select devices:", (15, 15))
self.devices_combobox = wx.ComboBox(self.panel, -1, r[1].split("\t")[0], (15, 35),
wx.DefaultSize, combox_list, wx.CB_DROPDOWN)
# Capture button.
self.capture_button = wx.Button(self.panel, -1, "capture", pos=(188, 35), size=(66, 25))
self.reload_button = wx.Button(self.panel, -1, "reload", pos=(258, 35), size=(66, 25))
self.Bind(wx.EVT_BUTTON, self.capture_click, self.capture_button)
self.Bind(wx.EVT_BUTTON, self.reload_click, self.reload_button)
self.capture_button.SetDefault()
self.reload_button.SetDefault() def capture_click(self, event):
capture_android(self.devices_combobox.GetValue())
if ("Windows" in platform.platform()):
os.startfile("d:\\screenshot.png") def reload_click(self, event):
self.devices_combobox.Clear()
k = execute_shell("adb devices")
for i in range(1, len(k) - 1):
self.devices_combobox.Append(k[i].split("\t")[0])
self.devices_combobox.SetValue(k[1].split("\t")[0]) def execute_shell(shell):
p = subprocess.Popen(shell, shell=True, stdout=subprocess.PIPE)
out = p.stdout.readlines()
return out def capture_android(device_id):
sh1 = "adb -s " + device_id + " shell /system/bin/screencap -p /sdcard/screenshot.png"
sh2 = "adb -s " + device_id + " pull /sdcard/screenshot.png d:/screenshot.png"
execute_shell(sh1)
execute_shell(sh2) class MyApp(wx.App):
def OnInit(self):
frame = MyFrame()
frame.Show(True)
self.SetTopWindow(frame)
return True if __name__ == '__main__':
app = MyApp()
app.MainLoop()

wx库下载地址:http://wxpython.org/download.php

运行截图:

优点:
1. 比uiautomatorviewer运行速度快,比monitor更快;
2. 可以针对多个设备,选择性进行截屏;
3. 截屏以后截图(保存在D盘根目录下“screenshot.png”文件)会自动打开;
4. 插拔设备后可以reload重新加载设备列表。

命令行版

如果不想安装wx库,提供一个命令行版的安卓截屏python脚本:

#!/usr/bin/env python
# -*- coding: utf-8 -*- import sys, os, platform
import subprocess def capture_android(device_id):
sh1 = "adb -s " + device_id + " shell /system/bin/screencap -p /sdcard/screenshot.png"
sh2 = "adb -s " + device_id + " pull /sdcard/screenshot.png d:/screenshot.png"
execute_shell(sh1)
execute_shell(sh2) def execute_shell(shell):
p = subprocess.Popen(shell, shell=True, stdout=subprocess.PIPE)
out = p.stdout.readlines()
return out if __name__ == '__main__':
if len(sys.argv) == 2:
device_id = sys.argv[1]
capture_android(sys.argv[1])
if ("Windows" in platform.platform()):
os.startfile("d:\\screenshot.png")

运行方式:


***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***

python Windows下的android设备截图工具的更多相关文章

  1. Python写一个Windows下的android设备截图工具

    界面版 利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装.代码如下: import wx,subprocess,o ...

  2. [转]phoneGap3.0安装步骤(以windows下的android环境为例):

    phoneGap3.0安装步骤(以windows下的android环境为例): 环境: WIN系统,JDK,Android,Eclipse,Ant,Git,PhoneGap3.x (Cordova) ...

  3. [转载]在Windows下搭建Android开发环境

    http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...

  4. Windows下修改Android手机的hosts

    Windows下修改Android手机的hosts 1.首先,手机是Root过的. 2.连接手机和电脑, adb shell 进入命令行. 3.获取root用户权限: su -root 4.不知道为何 ...

  5. Windows 下 tail 查看日志命令工具分享

    以前在公司时服务器上面可以实现tail 命令查看程序运行日志,感觉相当不错,上网查了下这些命令是linux 下的,还好有好心人开发了一个可以在Windows下的运行的小工具,来给分享一下: 使用方法: ...

  6. windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机

    本文记录windows 下使用VMware Workstation Pro 工具,ubuntu创建虚拟机 的步骤 第一步 [文件] --- [新建虚拟机]   第二步 弹出的新建虚拟机向导对话框 标准 ...

  7. Ionic2 下处理 Android 设备下返回按钮的事件

    原文发表于我的技术博客 本文分享了 Ionic2 下处理 Android 设备下返回按钮的事件,供参考. 原文发表于我的技术博客 代码中我分享了如何捕捉 Ionic2 项目在 Android 设备下返 ...

  8. Python Windows下打包成exe文件

    Python Windows 下打包成exe文件,使用PyInstaller 软件环境: 1.OS:Win10 64 位 2.Python 3.7 3.安装PyInstaller 先检查是否已安装Py ...

  9. windows下模拟linux命令的工具 xshell

    windows下模拟linux命令的工具 xshell

随机推荐

  1. java弱引用之WeakHashMap相关资料

    本人博客中有一篇文章对java中的引用有详细的介绍[http://www.cnblogs.com/javaee6/p/4763190.html],java中WeakHashMap这个类就是java弱引 ...

  2. ::before和::after伪元素的用法

    一.介绍 css3为了区分伪类和伪元素,伪元素采用双冒号写法. 常见伪类——:hover,:link,:active,:target,:not(),:focus. 常见伪元素——::first-let ...

  3. OAuth协议——PHP第三方登陆协议

    慕课网Badguy老师的良心课程! 总会有那种什么都不想干的时候,但现在的日子又不这么允许个人的放纵,我一般就只有这几个选择:看课程视频,看书,看小说..好像还是有可以做的事情.其中,看课程视频有点无 ...

  4. Linux Kernel 代码艺术——编译时断言

    本系列文章主要写我在阅读Linux内核过程中,关注的比较难以理解但又设计巧妙的代码片段(不关注OS的各个模块的设计思想,此部分我准备写在“深入理解Linux Kernel” 系列文章中),一来通过内核 ...

  5. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  6. BZOJ 2115 【Wc2011】 Xor

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...

  7. java并发编程学习: ThreadLocal使用及原理

    多线程应用中,如果希望一个变量隔离在某个线程内,即:该变量只能由某个线程本身可见,其它线程无法访问,那么ThreadLocal可以很方便的帮你做到这一点. 先来看一下示例: package yjmyz ...

  8. 让easyui 的alert 消息框中的确定按钮支持空格键

    var _messager = $.extend({},$.messager);$.extend($.messager,{ alert:function(title, msg, icon, fn){ ...

  9. textarea去掉右侧滚动条,去掉右下角拖拽

    代码: <TEXTAREA style= "overflow:hidden; resize:none; "> </TEXTAREA> 当使用背景图片的时候, ...

  10. javaScript中的页面传值

    function getURIParam(name) { var search = window.location.search; search = search.substring(1); if ( ...