提升之路--从0开始学app自动化(4)--app元素操作

app元素属性

 提示前是p代表属性,m代表方法

获取driver属性

-获取包名

 

-获取当前app页面的名称 

-获取源代码

 在app端获取到的是一个xml页面

-获取手机屏幕分辨率(尺寸)

 

 获取到的是一个字典

-获取当前页面的状态(原生/混合)

 原生界面:

混合界面: 

获取元素属性

-获取元素文本

 

 

-获取元素起始x,y坐标(左上角)

 结果是一个字典

-获取元素尺寸,宽:width 高:height,起始点x,y坐标

 

 结果是一个字典

引申:坐标

 元素的坐标

 可以通过获取元素的起始坐标,求出元素的中间坐标

页面的坐标

通过get_window_size获取,结果是结束点的坐标

所以可以通过百分比,来获取滑动屏幕的起始和结束坐标点,

比如从屏幕左侧滑到右侧,可以获取width的百分之80的位置(width*0.8)作为起始点,height不变,width的百分之20的位置(width*0.2)作为结束点,使用driver.swipe()方法滑动

app操作

app元素的操作跟web基本相同

如,click(),send_keys()等方法,之后只介绍手机上专有的操作,如滑动,缩放等

 -点击操作

这是手机全局的点击操作,跟元素点击有所不同

 

 传入参数是坐标,是一个列表嵌套元组,可以同时点击多个坐标,duration是按压时长

滑动

通过driver.wipe()方法

必传的参数有:起始点的x,y坐标,结束点的x,y坐标. 可选参数有:duration,表示滑动的时长

使用滑动的步骤:

1,获取屏幕的尺寸 width和height

 2,从右向左滑

 3,封装到basepage

单指/多指操作

相当于web里的鼠标事件

导入类

 从TouchAction创建对象,相当于创建ActionChains对象

-点击 tap

 跟driver.tap()不同,事件的tap传入的参数可以是一个元素,或者是一个坐标,可选参数count是点击次数

最后要加perform()

-按压press

 传入的参数可以是一个元素,或者是一个坐标,通常结合move_to()方法,移动到某个元素或者x,y坐标,然后最后release()松开手指

 最后要加perform()

-长按long_press

跟press一样用法,参数可以选择duration,表示按压的时长

通过MutiAction类实现缩放操作

1,获取第一个手指的操作

2,获取第二个手指的操作

3,创建MutiAction类的对象

4,使用add()方法,传入2个动作

 

5,执行操作

 

目前只能实现百度地图等app页面放大缩小,图片缩放还没能实现

进入指定页面

相当于web中进入指定url

先获取当前页面的activity和包名

adb shell dumpsys activity activities | findstr mResumedActivity

使用start_activity方法进入指定页面

 参数传入包名和activity名称

注意:

如果在初始化driver的时候,caps不传入包名和activity,取而代之是使用start_activtity方法进入app页面的话,程序运行完毕后不能自动关闭app

快捷键操作

快捷键kecode值表

Appium---Android的keycode键值 - 简书

 把常用的快捷键封装到一个类或者basepage,增加可读性

 

 toast弹窗

 在web当中,可以按f8暂停,然后定位元素,但是在app中不能暂停

这时候我们要根据组件名称 class名称为android.widget.Toast获取,一个页面只会出现一个toast

方法1: 根据class

 方法2:根据text属性

 获取toast的text文本

注意:toast元素wait只能用present_of_element_located,不能用visibility

要获取toast,必须符合一下条件:

1,appium server 要1.63以上

2,caps要定义automationName的值为UiAutomator2 最新版的appium默认使用UiAutomator2

3,UiAutomator2只支持安卓版本 5.0+

4,jdk1.8.64以上.配置JAVA_HOME环境变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值