您的位置:首页 > 移动开发

appium for android 查找元素方法总结

2017-06-14 11:48 411 查看
使用appium测试app自动化查找元素时比较麻烦,没有selenium查找web页面元素方便,

并且局限性也比较高,使用起来不是太灵活。

那下面介绍下我们一般经常使用到的一些查找元素的方法(已锤子手机为例)。

有两个工具可以用来查找元素:安卓sdk自带的uiautomator viewer;appium最新版1.0.2。

建议使用uiautomator viewer,个人感觉使用起来要方便些,包括复制元素的值也比较方便。

先链接锤子手机:



方法有很多,:

通过xpyth定位:findElementByXPath(“//android.widget.TextView[10]”) xpath下标从1开始,使用完整的classname

通过text name:find_element_by_name(name对应uiautomator扫描后text的内容)

通过id:find_element_by_id(id对应resource-id)

通过classname定位:find_element_by_class_name(class_name对应class)

通过accessibility id:find_element_by_accessibility_id(accessibility_id对应content-desc)

定位到某个文本框,并输入内容:

driver.find_element_by_id(“xxxxx”) .send_keys(“123456”)

滑动屏幕:

获取屏幕尺寸 width=self.driver.get_window_size()[‘width’] height=self.driver.get_window_size()[‘height’]

滑动屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000)

在手机上打开头条,只介绍常用的三种:

 find_element_by_name(name对应uiautomator扫描后text的内容)



脚本中输入这个name就可以定位到这个元素,然后做相应的操作,比如click()等

 find_element_by_id(id对应resource-id,用这个查找比较准确)



用resource-id查找是最准确的!

 find_element_by_class_name(class_name对应class,用这个一般都查找出的是一堆的数据,因为有很多地方都使用同一个class name)



这个是名为android.widget.TextView的classname,其他的行全部都是这个name



看看,其他的也是这个class name,所以用这个查找会找出一个列表的数据出来,如果想单独取某个行的数据,就需要使用for 循坏或者下脚标来取[X]

在做app自动化时需要花很大的精力去提前获取的数据并整理,因为很多数据是不能一一

对应的。

有问题可以加QQ群:610845268
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: