uiautomator2实战

uiautomator2实战: 启动随机播放音乐,并切换到后台


首先确定环境已搭建完成,

输入adb devices, 查看设备信息


输入python -m weditor,打开Weditor定位

在弹出的网页中输入adb devices 获取到的设备信息,点击connect,若出现绿色叶子,即连接成功


点击 Reload,可看到当前网页抓取到的界面就是我们手机停留的界面

 .

点击上面想要获取的信息框,即可抓取到对应的元素,

如:点击左上角的选项图标,右侧显示出对应的className、description、xpath、packageName等



在实现启动随机播放音乐时,需要启动apk,点击左侧选项图标,切换到歌曲,点击随机播放,以上点击我分为四个方法,再创建一个启动音乐并随机播放的方法;

具体实现如下:

既然已获取到包名,这里我们就可以先写启动apk的方法

注:uiautomator2支持使用packageName即可启用apk,但因为用的测试机音乐与视频的apk的名称都是“com.android.music”,所以这里加入了music的activiti;

获取activiti方式如下:

1 、手机进入到相关apk的界面,我这里进入到了音乐apk的界面,执行adb shell 

2、 执行dumpsys activity | grep mFocusedActivity

可以看到 .MusicBrowserActivity就是activity 

代码如下:

import uiautomator2 as u2

# 定义一个名为Music的class类,用于存放所有Music的相关点击、组合等操作

class Music:

    def __init__(self, d):

        self.d = d

# 定义一个名为start的方法,用于启动apk

    def start(self):

        self.d.app_start("com.android.music", activity=".MusicBrowserActivity")   

d = u2.connect()         # 初始化连接设备

music = Music(d)        # 实例化Music类,传入设备d

music.start()                # 调用start方法,启动音乐apk

以上即完成了apk的启动

启动apk已完成后,进行点击左侧选项图标,可以看到Code中包含的示范代码,直接拷贝到图中的2区域增加点击(.cliek()),点击运行,可确定是否满足期望的进行点击;

# 点击选项图标

def click_drawer(self):

    self.d(description=u"drawer").click()




# 点击 歌曲 选项
def click_title_drawer(self):

    self.d(resourceId ="com.android.music:id/title", text =u"歌曲").click()



# 点击随机播放

def list_shuffle_all(self):

    self.d(resourceId="com.android.music:id/shuffleAll").click()    

以上即将所有步骤都封装到了对应的方法中,下面新建一个随机播放音乐的方法

# 组合操作,进行后台播放音乐

def start_background_play(self):

    self.start()                                        # 启动apk

    self.click_drawer()                          # 点击选项图标

    self.click_title_drawer()                   # 点击歌曲

    self.list_shuffle_all()                         # 点击随机播放

    self.d.press("home")                        # 模拟按键操作,按home键切换到后台



以上为基本的操作,实际实战中会有更多复杂的情况,比如弹框、元素名称重复等,需要慢慢的积累。在这里就不复述了。这里只简单描述启动一个apk到封装一个操作以便调用;

完整代码如下:

import uiautomator2 as u2

# 定义一个名为Music的class类,用于存放所有Music的相关点击、组合等操作

class Music:

    def __init__(self, d):

        self.d = d

# 定义一个名为start的方法,用于启动apk

    def start(self):

        self.d.app_start("com.android.music", activity=".MusicBrowserActivity")

# 点击选项图标

    def click_drawer(self):

        self.d(description=u"drawer").click()

# 点击 歌曲 选项

    def click_title_drawer(self):

        self.d(resourceId="com.android.music:id/title", text=u"歌曲").click()

# 点击随机播放

    def list_shuffle_all(self):

        self.d(resourceId="com.android.music:id/shuffleAll").click()

# 组合操作,进行后台播放音乐

    def start_background_play(self):

        self.start()# 启动apk

        self.click_drawer()# 点击选项图标

        self.click_title_drawer()# 点击歌曲

        self.list_shuffle_all()# 点击随机播放

        self.d.press("home")# 模拟按键操作,按home键切换到后台

d = u2.connect()# 初始化连接设备

music = Music(d)# 实例化Music类,传入设备d

music.start_background_play()# 调用start_background_play方法,启动后台音乐apk

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容