android 基础知识
- Android 是通过容器的布局属性来管理子控件的位置关系,布局过程就是把界面上的所有的控件,根据他们的间距的大小,摆放在正确的位置
- Android 七大布局
- LinearLayout(线性布局)
- RelativeLayout(相对布局)
- FrameLayout(帧布局)
- AbsoluteLayout(绝对布局)
- TableLayout(表格布局)
- GridLayout(网格布局)
- ConstraintLayout(约束布局)
- Android 四大组件
- activity 与用户交互的可视化界面
- service 实现程序后台运行的解决方案
- content provider 内容提供者,提供程序所需要的数据
- broadcast receiver 广播接收器,监听外部事件的到来(比如来电)
- 常用的控件
- TextView(文本控件),EditText(可编辑文本控件)
- Button(按钮),ImageButton(图片按钮),ToggleButton(开关按钮)
- ImageView(图片控件)
- CheckBox(复选框控件),RadioButton(单选框控件)
- 布局是一种可用于放置很多控件的容器,它可以按照一定的规律调整内部控件的位置,从而编写出精美的界面。当然,布局的内部除了放置控件外,也可以放置布局,通过多层布局的嵌套,我们就能够完成一些比较复杂的界面。
dom 结构解读
- dom:Document Object Model 文档对象模型
- dom 应用:最早应用于 html 和 js 的交互。用于表示界面的控件层级,界面的结构化描述,常见的格式为 html、xml。核心元素为节点和属性。
- xpath:xml 路径语言,用于 xml 中的节点定位。
- android 应用的层级结果与 html 不一样,是一个定制的 xml
- app source 类似于 dom,表示 app 的层级,代表了界面里面所有的控件树的结构。
- 每个控件都有它的属性(resourceid,xpath,aid),没有 css 属性
id、aid、xpath 定位方法
-
测试步骤三要素:
- 定位、交互、断言
- 定位方式
- id 定位
driver.findElement(By.id("xxx"));(content-desc 属性值) - accessibility_id 定位
driver.findElement(MobileBy.AccessibilityId("xxx"));(content-desc属性值) - xpath 定位
driver.findElement(By.xpath("xxx"))(xpath 属性值) - classname 定位(不推荐)
https://www.freefomatter.com/xpath-tester.html/#ad-output格式化xml
- id 定位
-
xpath 定位
- 绝对定位
- 相对定位
- //*[@test='text属性值']
- //*[@resource-id='id属性值']
-
多属性精准定位
- //*[@text='text属性值' and @resource-id='id属性值']