码迷,mamicode.com
首页 > 移动开发 > 详细

appium的xpath定位

时间:2016-09-19 22:21:52      阅读:337      评论:0      收藏:0      [点我收藏+]

标签:

做自动化,元素定位是我们遇到的第一个困难。总是会有各种各样的问题,导致我们定位不到元素。前面一篇博客也写了元素定位的几种方法,今天主要分享一下xpath的定位方法。

这里我们仍然拿计算器举例。

技术分享

比如我这里想去定位这个数字1的按钮。

首先打开UIuiautomatorviewer

技术分享

 

我们鼠标点击一下数字7可以看到这个按钮的位置。我们上一篇中也说到了,在元素的属性中,class就是xpath的地址,我们是可以通过class来写xpath的。

那么这里我们就可以写成:

find_element_by_xpath("//android.support.v4.view.ViewPager/android.widget.LinearLayout/android.widget.LinearLayout[3]/android.widget.Button[1]")
看到这里感觉就像是剥洋葱一样。从外往里一层一层的剥,最终找到我们要定位的目标。
在这里需要注意的是我们在xpath定位的时候不能从最外层的整个页面开始,那样是会报错的。要从包含该控件的最上层的class开始写,什么是包含该控件的最上层元素呢?就比如这里的android.support.v4.view.ViewPager,我们点击这个可以发现
技术分享
android.support.v4.view.ViewPager实际上就是整个键盘的区域。然后在键盘的区域中对数字键1再进行定位。
还有就是上面我写的是android.widget.LinearLayout[3]/android.widget.Button[1]而不是android.widget.LinearLayout[2]/android.widget.Button[0]貌似和我们的UIuiautomatorviewer获取到的信息不一样,那么为什么会是这样呢?笔者其实也解释不清楚,哈哈。只是我觉得android.widget.LinearLayout[3]/android.widget.Button[1]是去定位第三个android.widget.LinearLayout中的第一个android.widget.Button元素。我记得我在书上看到的说法是xpath中的元素定位都是从1开始而不是从0开始,所以我通过android.widget.LinearLayout[3]/android.widget.Button[1]去定位到数字1的控件。这里讲的可能不对,我也在寻找答案中,找到答案后再更新过来。

 

appium的xpath定位

标签:

原文地址:http://www.cnblogs.com/rookie-c/p/5886776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!