Appium 获取界面元素时,安装和取消公用一个 recourseid 怎么办?

Heroman · 2021年04月24日 · 最后由 未来来 回复于 2021年05月10日 · 3944 次阅读

共收到 18 条回复 时间 点赞

坐标,xpath
话说你这几个啥软件

固定坐标不是个根本解决办法,目前我这就有三个机型,坐标是不同的
Xpath 也是同一个
我本来就是要通过 recourseid 或 xpath 拿的坐标,但是现在两个按钮都共用的,就麻爪了

你可以取第二个 resource_id 呀

在这个页面找一个能取到的,然后利用相对位置来找试试呢

咸鱼菜鸡 回复

哪里有第二个?

Heroman 回复

你不是安装和取消公用一个 id 吗,第一个是安装,第二个就是取消呀,加上 ins 就好了。。

加 ins 的做法还是不懂,麻烦再说的具体点,我是声明了一个按钮 recourseid 列表,在其中就返回坐标并点击

可以通过父控件定位自控件,虽然 id 一样,但 index 不一样

d(resource_id="XXX")[1].click()

未来来 回复


我遇到的公用 id,从树结构中可以看出来,根本无法展开
并且从元素定位工具看,根本没把安装和取消看作是按钮
d(resource_id="XXX")[1] 取值越界了,因为它没子

咸鱼菜鸡 回复

Heroman 回复

啥意思。。。

d(resource_id="XXX")[1] 是第二个这个 id 属性的控件 不是什么子节点。。

这个不能用 xpath 的组合定位吗 , 如 @resourc-id = "xxx" and @text="取消"

oppo 这玩意就是黏在一起的很恶心😅 ,如果是要做安装按钮的点击话,考虑特判一下?点这整个元素的右边部分

在找到最好的 solution 之前,坐标定位显然也算是个 workaround 了。

苦非苦,乐非乐,只是一时的执念而已。
执于一念,将受困于一念;
一念放下,会自在心间。

你按钮的位置是左右固定的,那就用相对坐标吧,取出整个控件的坐标,然后取消(左三分之一,上下居中),安装(右三分之一,上下居中)

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