appium通过index查找目标控件
2024-10-20 03:29:34
2.1 通过判断控件属性获取控件
控件的所有属性都可以用作判断,比如它的text,index,resource-id是否clickable等,例如:
2.1.1 通过文本查找目标控件
1
2
|
el = driver.findElementByXPath( "//android.widget.TextView[contains(@text,'note2')]" ); assertThat(el.getText(),equalTo( "note2" )); |
2.1.2 通过index查找目标控件
如果我们像下面的方式使用index为0来查找控件note2,那么将会失败,因为该xpath只是说“我要查找页面上 android.widget.TextView类型的index为0的控件“,但如背景所说我们事实上有3个TextView控件,其中最上面的和中间 的控件他们的Index都是0.所以最终获得的控件其实是Appium第一个找到的最上面文本为”Notes“的TextView。
1
2
|
el = driver.findElementByXPath( "//android.widget.TextView[contains(@index,0)]" ); assertThat(el.getText(),equalTo( "note2" )); |
那么我们就要想办法加多点路径,让xpath能分辨出需要的是下面的index为0的TextView,而不是上面的。观看上图的 UIAutomatorViewer控件的分层结构,发现这两个TextView是从LinearLayout开始分叉的,所以我们应该从该路径开始通过 数组下标指定我们需要的是”在LinearLayout下面的第二个FrameLayout下面的ListView下面的Index为0的 TextView:
1
2
|
el = driver.findElementByXPath( "//android.widget.LinearLayout[1]/android.widget.FrameLayout/android.widget.ListView/android.widget.TextView[contains(@index,0)]" ); assertThat(el.getText(),equalTo( "note2" )); |
最新文章
- [原创]下拉框控件react-native-modal-dropdown更新历程
- 解决绝对定位div position: absolute 后面的<;a>; Link不能点击
- Python-模块的使用
- 支付宝地铁SDK使用失败记录
- 基于Verilog HDL整数乘法器设计与仿真验证
- tomcat虚拟路径的几种配置方法
- 字节的高低位知识,Ascii,GB2312,UNICODE等编码的关系与来历
- inner join跟where查询的区别
- crontab 配置
- 打印org.eclipse.xsd.XSDSchema对象
- Sublime Text3常用插件以及安装方法(实用)
- 什么是Css Hack?ie6,7,8的hack分别是什么?
- Hibernate之深入持久化对象
- 定期清理WordPress的文章修订版本
- kdtree HDU5992
- ES6中的箭头函数和普通函数有什么区别?
- Netty 系列五(单元测试).
- (转)Spring Boot(七):Mybatis 多数据源最简解决方案
- HDOJ 1754 I Hate It (线段树)
- ubuntu jdk 安装