既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
**进入模式:**点击下图冻结按钮
说明:单击下图箭头区域,则会进入冻结模式查看元素控件,光标移至右侧的元素位置,并点击相应元素控件,则自动会定位到页面层级,log窗口可以查看当前层面的元素属性。即使实际连接的被测设备已经离开当前页面,冻结模式也不会受影响,相当于一直冻结在这个页面,便于查看元素
退出方式:再次点击冻结按钮
第二种:检视模式
进入模式:点击下图检视按钮
说明:单击下图箭头区域,则会进入检视模式查看元素控件,与刚才的冻结模式最大的区别是,此时查看控件,如我们对控件进行操作,设备画面也会跟着变化
退出方式:再次点击检视按钮
3. 定位元素的方式
基本定位器
由于AirtestIDE内置Poco,直接导入即可使用,基本定位器就是poco(节点名或节点属性)
# -*- encoding=utf8 -*-
__author__ = "86150"
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
# 单个条件
poco(text="中古屋")
# 多个条件
poco('com.addcn.android.house591:id/grid_item_text',text="中古屋")
相对选择器
就是通过元素之间的层级关系进行选择,例如父子关系、兄弟关系、祖先后代关系等等,Poco控件给我们提供了利用树的层级关系来定位的各种方法:
- 子节点:child
- 所有子节点:children
- 子孙节点:offspring
- 父节点:parent
- 兄弟节点:sibling
poco("plays").child("playBasic").offspring("star_single")
说明:这种方式较为繁琐,一般是通过属性和节点无法定位的时候,可以选择使用这种方式
正则表达式
正则表达式匹配时一种少见的方式,但也是非常好用的方式,按照下图通过属性定位的方式为:
# 1.text属性方式定位
poco(text="中古屋")
# 换成正则表达式定位
poco(textMatches="正则表达式")
poco(textMatches=".*中古屋")
# 2.name属性方式定位
poco(name='com.addcn.android.house591:id/grid_item_text')
# 换成正则表达式定位
poco(nameMatches="正则表达式")
poco(nameMatches=".*grid_item_text")
说明:只要能够用 poco(xx=预期属性值) 来选择的控件,就可以用 poco(xxMatches=预期属性值的正则表达式) 来进行匹配定位,官方推荐优先使用属性或正则表达式定位,会更加简介高效
4. 操作元素的方式
点击
# 单击元素
poco(text="中古屋").click()
# 长按元素
poco(text="中古屋").long_click()
滑动
Poco支持对控件进行滑动操作,我们需要先定位到这个控件,然后指定它按照某个方向滑动即可
# 向下滑动0.2个单位距离
poco("com.addcn.android.house591:id/grid_item_text").swipe([0,0.2])
# 向上滑动0.2个单位距离
poco("com.addcn.android.house591:id/grid_item_text").swipe([0,-0.2])
# 向下滑动0.1个单位距离
poco("com.addcn.android.house591:id/grid_item_text").swipe("down")
# 向上滑动0.1个单位距离
poco("Handle").swipe("up")
获取元素的属性值
在IDE的poco辅助窗检索出来的控件属性,基本上都可以通过 attr 接口读取出来
print("name:"+poco(text="中古屋").attr("name"))
print("type:"+poco(text="中古屋").attr("type"))
print("texture:"+poco(text="中古屋").attr("text"))
print("texture:"+poco(text="中古屋").attr("texture"))
# log日志输出
name:com.addcn.android.house591:id/grid_item_text
type:android.widget.TextView
texture:中古屋
[Finished]
设置元素的属性值
通常情况需要给定位的元素输入文本内容,可以使用set_text()方法或setatrr()方法
from airtest.core.api import *
auto_setup(__file__)
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
# 先激活输入光标
poco("com.addcn.android.house591:id/et_edittext").click()
# 再执行输入动作
poco("com.addcn.android.house591:id/et_edittext").set_text("123")
poco("com.addcn.android.house591:id/et_edittext").setattr('text',"456")
![img](https://img-blog.csdnimg.cn/img_convert/ee4387723525e68f78af7e34c1aa60e8.png)
![img](https://img-blog.csdnimg.cn/img_convert/18c2ff9ca331dc6b30fd1612030cb61b.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**