UiAutomator 有些控件名每次启动 app 会变化,要怎么定位?

skyshine · 2023年10月17日 · 最后由 skyshine 回复于 2023年10月18日 · 5337 次阅读

我之前想定位屏幕上一个可以滑动的元素,但总失败。
今天无意中发现了原因。

d.xpath('//*[@resource-id="page-1697466667531"]/android.view.View[2]')

就是这句定位的。
page 后面有串数字,这个数字第次打开 app 都会变化,

这该怎么定位呢?

不先找它就无法定位它下面的元素

谢谢

共收到 6 条回复 时间 点赞

模糊匹配

完整的 Xpath 能定位到吗,,/html/body/div..........

这个不是类似于应用混淆吗 你就别用 ID 了呀 换别的属性

我记得你之前是不是有发过一个类似的帖子,我好像还回复了。
这个 ID 会变的话你就别写死,用 contains(@resource-id, 'page') 来定位

正则匹配下?
d.xpath(r'//*[re:match(@resource-id, "page-\d+")]/android.view.View[2]', namespace={"re": "http://exslt.org/regular-expressions"})

thank you

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