分享

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

 wenxuefeng360 2022-11-07 发布于四川

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多