元素定位
app自动化测试最重要的一个环节是元素定位,只有准确定位到元素才能进行相关元素操作,如输入、点击、拖拽、滑动等。appium提供了许多元素定位方法,如id定位、class定位、name定位、层级定位等等
元素定位方式
id、name、class、List定位、相对定位、Xpath定位、H5页面元素定位、Uiautomator定位
id定位
appium中可以使用find_element_by_id()方法进行定位
id定位综合实践:(自动登录)
name与classname定位
appium中可以使用find_element_by_name()方法进行定位,实际是text的值
appium中可以使用find_element_by_class_name()方法进行定位,实际是class的值(缺点是若界面存在多个元素的classname相同,则不能使用该种定位方式)
相对定位
相对定位是先找到该元素的对应属性的父元素节点,然后基于父元素进行元素定位
xpath定位
xpath定位是一种路径定位方式,主要是依赖于元素绝对路径或者相关属性来定位,但是绝对路径xpath执行效率比较低(特别是元素路径比较深的时候),一般使用比较少,通常使用xpath相对路径和属性定位
xpath定位:https://www.runoob.com/xpath/xpath-syntax.html
List定位
list定位首先是使用find_elements_by_XX,获取一组相同的class属性元素,然后使用数组下标来区分标记不同元素进行相关操作
list定位综合案例:
Uiautomator定位
Uiautomator元素定位是Android系统原生支持的定位方式,虽然与xpath类似,但比它更加好用,且支持元素去阿奴属性定位,定位原理是通过Android自带的android uiautomator的类库去查找元素。Appium元素定位方法其实也是基于Uiautomator进行封装的
定位方法
1.id定位
new UiSelector().resourceId('')
2.text定位
new UiSelector().text('')
3.class name定位
new UiSelector().className('')
H5页面元素定位
环境搭建:1.手机和电脑下载chrome浏览器(版本最好一致)
2.下载chromeDriver,并放到appium的安装目录之下(chromeDriver版本要与chrome版本对 应)
具体版本对应:https://blog.csdn.net/BinGISer/article/details/88559532
3.在chrome浏览器中输入chrome://inspect/#devices ,检查webview是否打开
具体代码实践: