实战一下

在实战之前,在命令行输入 weditor命令,浏览器会自动打开设备管理页面

查看手机的 ip 地址,通过 ip 地址 连接设备后,界面会展示当前设备界面的元素信息

在这里插入图片描述

1、打开微信 App

在局域网下通过 IP 地址连接设备,然后通过微信 App 的包名打开应用

import uiautomator2 as u2

微信App的包名

PACKAGE_NAME = ‘com.tencent.mm’

连接设备

self.device = u2.connect(‘192.168.0.101’)

获取屏幕的宽、高度

self.width, self.height = self.device.window_size()

利用应用包名打开App

self.device.app_start(PACKAGE_NAME, stop=True)

2、等待主页加载完成

由于上面冷启动 App 比较耗时,这里需要进行等待主页的页面元素加载完成

在这里插入图片描述

利用 WEditor 定位获取底部 Tab 的元素 ID,然后利用「 ID + 文本内容 」定位到 Tab 控件,通过设置一个最大超时时间,一直等待查询控件成功为止

def __wait_home_appear(self):

“”"

等待主页加载完成

:return:

“”"

self.device(resourceId=‘com.tencent.mm:id/cns’, text=‘微信’).wait(timeout=20)

self.device(resourceId=‘com.tencent.mm:id/cns’, text=‘通讯录’).wait(timeout=20)

self.device(resourceId=‘com.tencent.mm:id/cns’, text=‘发现’).wait(timeout=20)

self.device(resourceId=‘com.tencent.mm:id/cns’, text=‘发现’).wait(timeout=20)

print(‘首页加载完成’)

3、判断是否存在未处理消息

和上面一样,使用 WEditor 获取顶部 Tab 未读消息控件的文本内容

如果文本内容不为空,那么代表存在未处理的消息;否则,直接退出程序即可

def __has_unread_msg(self):

“”"

是否有未读的消息

:return:

“”"

try:

number_unread_msg = self.device(resourceId=‘com.tencent.mm:id/gik’)

return number_unread_msg.get_text() != “”

except Exception:

return False

4、查找未处理消息进行处理

在当前界面查找消息列表,筛选出头像右上角包含数字的控件

在这里插入图片描述

如果查找的元素不为空,并且文本内容为整形且大于 0,则模拟执行一次点击操作,然后返回到主页面

未处理消息控件

element = self.device(resourceId=‘com.tencent.mm:id/ga3’, instance=0)

if element.exists and self.__is_number(element.get_text()):

存在未处理的消息

element.click()

if not self.__is_home_page():

返回到主页面

self.device.press(‘back’)

else:

不存在未处理的消息

pass

5、查找与定位优化

有 2 种方式去查找定位所有未读的消息,分别是:

  • 上下滑动,去循环查找当前界面

  • 快速点击底部 Tab 两下,直接跳转到未处理的消息项

这里更推荐后者,因为第二种方式更加稳定精确,而且支持循环定位查找

我们获取到底部 Tab 控件的中心点坐标,使用 double_click() 指定两次点击的时长为 0.05s,模拟快速点击两下

def click_twice_quickly(device, element):

“”"

快读点击两下

:param device:

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐