zoukankan      html  css  js  c++  java
  • 记录一下如何成功识别无id、无text的元素的曲折过程

    设置中的功能相对比较稳定,逻辑较简单,需求变更较少,所以打算把这个模块的功能尽量用自动化去覆盖。

    操作:在个人页面中,点击“设置”菜单(点击后进入设置页面)--》点击“切换帐号”菜单(点击后进入关联帐号页面)

    问题:Appium1.15.1的inspector获取的源码中,dom树中没有id和text属性,只有一个class属性:android.widget.RelativeLayout;在界面中,切换帐号这个元素不能精确定位。

    尝试方案1:试着手动点击切换帐号进入关联帐号界面,再返回设置界面,刷新inspector session后,设置界面的源码中竟然显示了切换帐号这个菜单的id和class属性,而且在inspector中用id搜索也是定位到一个元素。但不管是find by id还是find by xpath(id和text组合),都是识别失败。

    尝试方案2:想起天涯app很多东西都会做缓存,这个元素有没有可能是被缓存到了本地,然后进入页面的时候不重新下载,于是source中不完全显示它的属性呢?想到这里,我手动在设置中清除缓存,退出到个人页面,点击设置菜单,重新进入设置页面,然后刷新inspctor。这样反复操作了几次,确定最后inspector中可以完全显示切换帐号这个菜单的属性。在启动参数中设置noReset=False,调试......,识别失败。

    尝试方案3:用xpath层级定位,路径好深。但是想着用爷爷都能定位孙子,通过曾爷爷来定位应该也是没有问题的吧。

    xpath:android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]

    还是以失败告终,按理说应该可以识别到的,下标该写的也写了,也没写错。可结果就是不行。好无奈啊!

    尝试方案4:还是用xpath定位,用id先找到爷爷,然后定位到父亲,再定位到孙子

    xpath:"//*[@resource-id='cn.tianya.light:id/setting_main']/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]"

    终于成功识别到了这个该死的切换帐号了,内心顿时像放下一块大石头。

  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/my-testing-life/p/12703457.html
Copyright © 2011-2022 走看看