app 自动化测试中,遇到一个问题,需要删除指定的房间(app 上长按该房间后即出现删除控件 CheckBox),房间可以找到,但是该房间对应的删除按钮 CheckBox 却有多个,且 id 其他属性都相同,使用 uiautomatorviewer 定位,见截图 小弟试过很多定位方式,均不能定位到该房间的删除控件,望各位大神能指点下,先谢过各位!
你这情况好像除了xpath没有其它好办法了,你可以先找到房间,然后找到父元素,在找到父元素后面的兄弟节点,//xxx.TextView[@text='房间名称']/parent::xxx.LinerLayout/following-sibling::checkbox,大概是这样
xpath
//xxx.TextView[@text='房间名称']/parent::xxx.LinerLayout/following-sibling::checkbox
可以取 ID 数组,然后根据数组下标位置定位
xpath 啊
抱歉可能是我没说清楚,因为房间位置是动态变化的,我也试过 XPAth 定位,我希望能通过房间名,以相对定位方式,定位到该房间的删除图标,
id 数组下标定位应该可以定位到,我本意希望能通过已知得的房间名,以相对定位方式定位到该房间的删除图标,这样的话,不管 id 是多少,我可以用房间名,定位到它的删除图标
find_element_by_xpath('//android.widget.TextView[contains(@text, "红磨坊")] ')
非常感谢,已经定位到!方法可行,我 16 年都注册了,一直没有在论坛问过问题,testerhome 果然大神众多,效率高,
不是要定位红磨坊,是要定位那个删除图标,不过依然感谢!
尽管没有详细说明,不过依然感谢回复!
已试过以下两种方式都可定位到: 方式一://android.widget.TextView[@text='红磨坊']/parent::android.widget.LinearLayout/following-sibling::android.widget.CheckBox[1]
方式二://*[@text='红磨坊']/../following-sibling::android.widget.CheckBox[1]
说明:后面的 checkbox 需要加下标,只有一个也需要加下标,