作者:虚坏叔叔
博客:https://xuhss.com
早餐店不会开到晚上,想吃的人早就来了!😄
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-caxoHWv9-1659271020227)(C:\Users\Administrator\Desktop\1.png)]](https://1000bd.com/contentImg/2022/08/03/122704975.png)
可以看到,整个页面只有一个resourceId,并没有重复的resourceId。所以索引为0。
# 包名通过weditor获取
d.app_start(package_name="com.tal.kaoyan")
# 通过resourceId定位方式
d(resourceId = "com.tal.kaoyan:id/login_code_touname")[0].click()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XFVBtApo-1659271020228)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220731195405297.png)]](https://1000bd.com/contentImg/2022/08/03/122705127.png)
可以将text属性加进去,这样也可以不用添加索引
# 包名通过weditor获取
d.app_start(package_name="com.tal.kaoyan")
# 通过多个条件进行定位
d(resourceId = "com.tal.kaoyan:id/login_code_touname", text="密码登录").click()
# 包名通过weditor获取
d.app_start(package_name="com.tal.kaoyan")
# 通过多个条件进行定位
d(resourceIdMatches = "com.tal.kaoyan:id\/login_code_touname", text="密码登录").click()
注意,对"/"要进行转移操作的。
我们可以先看一下页面的层级:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4oDiXjc-1659271020229)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220731201614470.png)]](https://1000bd.com/contentImg/2022/08/03/122705331.png)
为什么一个页面里,要嵌套这么多层数呢?因为在每个布局中,都可以单独定义它的属性,这样就能应对安卓开发中,各种界面的需求变化。
我们可以通过加入层级的关系,更加精确的找到控件:
# 包名通过weditor获取
d.app_start(package_name="com.tal.kaoyan")
# 混合定位方式
d(className="android.widget.LinearLayout").child(text = "密码登录").click()
这里就写2个层级,那如果一个控件需要多层的查找才能唯一确定,可以一直child找到对应的控件。但那样的话代码会冗长,不推荐,可以跨层级定位控件。
如果我想要跨层级查找应该怎么实现呢?
通过child_by_text,就会递归查找符合文本要求的控件。这里在查找的条件中,添加了resourceId的条件。
# 包名通过weditor获取
d.app_start(package_name="com.tal.kaoyan")
# 混合定位方式
d(className="android.widget.FrameLayout").child_by_text("密码登录", resourceId="com.tal.kaoyan:id/login_code_touname").click()
通过sibling可以实现兄弟定位
# 包名通过weditor获取
d.app_start(package_name="com.tal.kaoyan")
# 兄弟节点定位
d(resourceId="com.tal.kaoyan:id/login_code_phonecodeview").sibling(resourceId="com.tal.kaoyan:id/login_code_touname")[0].click()
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IatlLGL1-1659271020230)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220731203030080.png)]](https://1000bd.com/contentImg/2022/08/03/122705501.png)
点赞 收藏 转发 一波哦,博主也支持为铁粉丝制作专属动态壁纸哦~| 学习路线指引(点击解锁) | 知识定位 | 人群定位 |
|---|---|---|
| 🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
| 💛Python量化交易实战 💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
| ❤️ Python&C++混合编程❤️ | 难度偏高 | 分享学习Python C++混合编程知识! |
关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!
