1 路径以“/”开始 表示找到满足该绝对路径的元素;
2 路径以//element”开始 表示找到文档中所有满足“//”后规则的元素 如//element 表示找到所有element元素,我们推荐使用相对定位
3 路径以//* 表示所有 如//* 表示选择所有元素;
4 可以用个属性来定位 //element[@ 属性="值"] 来进行定位
5 通过层级来进行定位 //element[@属性='值'] / 子元素
如果想了解更多,可以到传智播客官网看看。
这样定位会报错。xpath是按照树的层级一层一层识别元素。在uiautomatorviewer,识别到的元素前缀都是从0开始,而转换成xpath,是需要从1开始的,类似第一个层级,第二个层级driver.findElementByXPath(
"//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.EditText[1]");
改写下定位元素到1,继续调试下
之前写过一篇文章提到了xpath元素定位,只写了一些函数,但是不够具体。于是想再写一篇关于xpath元素的定位终极篇,相信你一定能在这里找到你需要的解决办法。
通过绝对路径方式定位(相信大家不会使用这种方式)
CSS
通过相对路径方式定位
Bash
通过元素索引定位
CSS
使用xpath属性定位(结合第2、第3中方法可以使用)
CSS
使用部分属性值匹配(最强大的方法)
Bash
使用xpath轴(未曾使用)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)