新手区 请教一个 robot-framework appiumLibrary 通过 xpath 模糊定位的问题

心意已决 · 2018年03月20日 · 最后由 心意已决 回复于 2018年03月20日 · 1690 次阅读

AppiumLibrary.click element xpath=//android.widget.TextView[contains(@text,"货品为:${pinming_global}")]
通过 xpath 模糊定位安卓应用中 text 包含 “货品名:${pinming_global}” 的 TextView 元素,并点击该元素
其中 ${pinming_global}为定义的变量,可以通过 ${pinming_global}来确定目标元素的唯一特性。
但在实际运行中,此处运行成功,点击了元素,并成功跳转,但点击的元素不是包含 ${pinming_global}的 TextView ,而是点击了包含 ${pinming_global}TextView 的下一个 TextView
如图:

当 ${pinming_global}=1521504495 时,点击的元素为包含货品名为 1521446959 的 TextView
当 ${pinming_global}=1521446959 时,点击的元素为包含货品名为 1521447311 的 TextView
以此类推。。。。

共收到 2 条回复 时间 点赞

遇到这类灵异事件,先把 appium,appiumlibrary 都更新到最新版本试试看吧;测试脚本本身简单明了,只好先从源头看,如果更新了还不行,再试试换测试机型系统;

解决了。。。是元素未显示。。。
在前面添加 AppiumLibrary.Wait Until Element is visible //android.widget.TextView[contains(@text,"${pinming_global}")] 20

原因可能是元素位于 RecylerView 里,进入该页面时有刷新加载数据过程,匹配到的元素由于只加载一条数据,所以位置往后顺延一条数据。相信,如果刷新加载 2 条或以上数据时,点击的数据应该是顺延加载数据量后的对应数据。
总之不管加载多少条,遇到有页面刷新过程,需要添加等待

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册