连接设备
使用USB连接:
d=u2.connect_USB('148b4090') #输入手机序列号
#d是给当前连接设备定位一个变量
获取设备的信息:
print(d.info)
获取当前APP的活动窗口和包名:
print(d.current_app())
获取窗口的大小:
print(d.window_size())
打开关闭app:
打开app:
d.app_start(‘’) #传入APP的包名称
关闭app
d.app_stop(‘’) #传入APP的包名称
停止所有正在运行的程序:
d.app_stop_all()
#只能关闭已经打开正在运行的第三方APP不能关闭后台运行的APP,包名只能停止自定义安装的app
#停止所有正在运行的程序设置白名单d.app_stop_all(excludes=[‘’])引号里面传入一个APP的包名
元素的定位和操作:
元素的定位方法:
ResourceId定位:
d(resourceId="com.smartisanos.clock:id/text_stopwatch").click()
Text定位:
d(text="秒表").click()
ClassName定位:
d(ClassName="com.smartisanos.clock:id/text_stopwatch").click()
description定位:
d(description='短信').click
Instance定位到第几个:
如果页面存在多个相同的元素可以使用instance进行选择;
三个相同的元素他们的resourceid和ClassName选择一个即可,然后在使用instance:
第一个:
d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView").click()
第二个:
d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=1).click()
第三个:
d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=2).click()
元素的操作方法:
对定位到的元素点击:
d(text="Settings").click()
对定位到的元素长按
d(text="Settings").long_click()
等待元素出现,返回True为出现false为没有出现:可用于做判断处理
d(text="Settings").wait(timeout=10.0)
输入文案:
d(text="Settings").set_text("你好")
手机屏幕和按键的操作:
屏幕的操作:
#打开屏幕:
d.screen_on()
#关闭屏幕:
d.screen_off()
获取当前屏幕状态:
d.info.get(' screenOn ')
解锁屏幕:
d.unlock()
点击屏幕:
d.click(x,y)
双击屏幕:
d.double_click(x,y)
d.double_click(X,Y,0.1) #双击屏幕间隔时间
长按屏幕:
d.long_click(x,y)
d.long_click(X,Y,0.5) #0.5为长按屏幕的时间
对屏幕的拖动:
d.swipe(sx, sy, ex, ey) #传入开始坐标和结束坐标
d.swipe(sx, sy, ex, ey, 0.5) #0.5代表拖动速度
或者
d.drag(sx, sy, ex, ey)
d.drag(sx, sy, ex, ey, 0.5)
滑动点:
d.swipe((x0, y0), (x1, y1), (x2, y2), 0.2)
截图:
d.screenshot("home.jpg") #传入路径和名称
手机系统按键的操作:
#home键
d.press("home")
#返回键
d.press("back")
通知栏的操作:
打开通知栏
d.open_notification()
打开通知栏的设置
d.open_quick_settings()
shell命令
d.adb_shell(‘‘)直接传入shell命令即可
e)文件的导入导出
把文件从电脑导入手机
d.push(‘文件的路径加文件名’,’/sdcard/’)
把文件从手机导入电脑
d.pull("/sdcard/tmp.txt(手机文件的路径)", “拉 倒电脑后要改的名字”)
d)针对弹窗的操作
d.disable_popups()#自动跳过弹出窗口
d.disable_popups(False)#禁用自动跳过弹出窗口
详情
更多方法请参考:https://github.com/openatx/uiautomator2