#coding=utf8
'''
adb shell input关键命令如下:
输入文本信息:adb shell input text <string>
例如:input text hello
按键操作:adb shell input keyevent [--longpress] <key code or name>
例如:input keyevent 1 或者 input keyevent KEYCODE_MENU
点击操作:adb shell input tap <x> <y>
例如:input tap 100 200
滑动操作:adb shell input swipe <x1> <y1> <x2> <y2>
例如:input swipe 0 0 100 100
截屏:adb shell screencap <filename>
例如:adb shell screencap /sdcard/screen.png
'''
#用于获取设备临时文件存放目录
import tempfile
#调用系统命令popen
import os
import re
import time
import xml.etree.cElementTree as ET
class DeviceDriver(object):
"""
通过元素定位,需要Android 4.0以上
"""
def __init__(self):
"""
初始化,创建一个设备对象,以及获取当前PC下临时文件的路径;
调用re库,创建一个以数字的模式对象。
"""
#获取当前设备临时文件存放的目录
self.tempFile = tempfile.gettempdir()
#创建一个以数字匹配的规则对象
self.pattern = re.compile(r"\d+")
try:
#创建设备连接的对象实例
self.devices=os.popen("adb wait-for-device ")
except Exception:
print u"连接设备....."
finally:
self.devices.close()
#获取活动页面的UI信息文件
def __uidump(self):
"""
获取设备当前活动页面的hierarchy的UI信息,
通过uiautomator dump命令把UI信息存放在uidump.xml文件中;
通过adb pull命令把uidump.xml文件下载到本地临时文件目录下
"""
try:
if self.devices:
#获取设备当前活动页面的hierarchy的UI信息,
通过adb与python结合创建的设备驱动脚本deviceDriver.py
最新推荐文章于 2024-08-07 10:24:19 发布
该博客介绍了如何通过adb shell uiautomator dump命令获取UI信息并利用Python解析XML进行元素定位。脚本封装了多种定位及操作函数,如clickElement、swipeScreen等,用于实现精准的app自动化测试。与appium相比,该方法响应更快,维护成本更低,后续计划将其与monkeyrunner、unittest和robot framework集成。
摘要由CSDN通过智能技术生成