Appium 常用方法
来源:互联网 发布:jquery 删除二维数组 编辑:程序博客网 时间:2024/05/22 02:27
前提:获取控件信息使用uiautomatorviewer,在sdk的目录下D:\Android\sdk\tools\uiautomatorviewer.bat。
几种定位方法:
(1). 通过控件id
//返回泛型list
driver.findElementsById("控件的id");
//返回单个控件对象
driver.findElementById("控件id");
(2). 通过控件的类
//例如获取界面的EditText控件
//返回list
driver.findElementsByClassName("android.widget.EditText");
//返回单个控件对象,多个返回第一个
driver.findElementByClassName("android.widget.EditText");
driver.findElement(By.name("android.widget.EditText"));
(3). 通过坐标
这个返回不了控件,一般用来做滑动,或者点击某个坐标。
//从宽度的3/4 向左滑动到1/4,, y轴是中间
public void swipeToLeft(int during) {
int width = driver.manage().window().getSize().width;
int height = driver.manage().window().getSize().height;
driver.swipe(width * 3 / 4, height / 2, width / 4, height / 2, during);
}
(5). 通过Xpath
XPath是XML Path的简称(由于HTML文档本身就是一个标准的XML页面,所以我们可以使用XPath的语法来定位xml或者html页面元素)
有兴趣的学一下: http://www.w3school.com.cn/xpath/
关于xpath这种定位方式,webdriver会将整个页面的所有控件进行扫描以定位我们所需要的控件,所以这是一个非常费时的操作,如果你的脚本中大量使用xpath做控件定位的话,将导致你的脚本执行速度降低,所以请慎用。
①. 绝对路径写法:
只有一种,使用右斜杠/
查找根元素的EditText: /android.widget.EditText
②. 相对路径
查找页面根控件://
查找页面上所有的EditText控件://android.widget.EditText
查找页面上第一个TextView控件://android.widget.TextView[1]
查找页面上id为login的控件://[@id=’login’]
查找页面上具有text属性为username的TextView控件://android.widget.TextView[@text=’username’]
查找页面上id为loginLayout的LinearLayout控件下的第一个TextView控件://android.widget.LinearLayout[@id=’loginLayout’]/TextView[1]
③. contains关键字
获取text里面包含保的TextView控件: driver.findElement(By.xpath(“//android.widget.TextView[contains(@text, ‘存’)]”));
④. start-with
获取text里面保开头的TextView控件: driver.findElement(By.xpath(“//android.widget.TextView[starts-with(@text, ‘保’)]));
⑤. text关键字
获取文本为保存的控件: driver.findElementByXPath(“.//*[@text=’保存’]”);
(5). 获取界面的XMl文件
driver.getPageSource();
其他常用方法:
1. 显示等待
AndroidDriverWait
2.隐式等待
driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS);
implicitlyWait() 不是休眠,是全局设置超时时间,在findelement或者findelements的时候,首先去找控件,如果没有找到,判断时间否超过implicitlyWait()设置了的时间,如果没有超过,则再次找这个元素,直到找到元素或者时间超过最大阀值。那我们就可以设定一个比较长的超时时间,但同时也不会让程序白白的等待。默认是250ms。
3. 线程超时
Thread.sleep()
断言:
assertTrue:判断是否为True。
assertFalse:判断是否为false。
assertSame:判断引用地址是否相同。
assertNotSame:判断引用地址是否不相同。
assertNull:判断是否为null。
assertNotNull:判断是否不为null。
assertEquals:判断是否相等,Object类型的对象需要实现haseCode及equals方法。
assertNotEquals:判断是否不相等。
assertEqualsNoOrder:判断忽略顺序是否相等。
- Appium常用方法总结
- Appium常用方法介绍
- appium常用方法
- Appium 常用方法
- appium常用方法
- Appium API常用方法解释
- Appium+Python 自动化-appium常用元素定位方法
- appium一些常用方法的封装
- appium一些常用方法的封装
- Appium中常用查找控件的方法
- Appium 关于 appium 的原生控件的 xpath 定位问题及常用方法
- APPIUM常用笔记
- appium 常用api实践
- appium python 常用API
- appium 常用api介绍
- Appium基础篇16-appium截图方法
- appium client方法一览
- appium get_attribute 方法
- poj1511 spfa
- OC中多线程详解
- 一个很好的教程网站(asp.net)
- windows系统下安装配置 Nginx 的常见问题
- 如何使用Openlayer发布地图
- Appium 常用方法
- R聚类算法-(K-Means算法)
- Python 守护进程 实现 start stop restart
- jackson对日期的处理(序列化与反序列化)
- RocketMQ实战(一)
- numpy用法
- 修改navigationbar间距及高度
- Linux内核分析-4/5/系统调用
- touch事件中的touches、targetTouches和changedTouches(详解)