Appium 【已解决】控件定位适配问题,有点奇葩。

Vincent · 2014年09月04日 · 最后由 思寒_seveniruby 回复于 2014年09月09日 · 2084 次阅读

谢谢大家,我用 2 部手机定位相同的 一个控件,一个手机能 找到 resource-id,另一个定位不出来。
2 个手机都是 4.3 的系统,都 root 了,安装的相同的 apk 版本,等等。
直接上图,谢谢大家。

共收到 13 条回复 时间 点赞

这问题挺有群. 大家看过来, 我记得之前也有人反馈过, 因为没有特定的环境, 所以其他人不太好追查.

厂商改了

@kasi
我们测试机中,华为的 3C 有该问题,小米的红米 测试手机版本的淘宝也有该问题
只有酷派的 S6 屏幕 5.5 寸的这款 可以完美获取控件属性。

我也遇到过类似的问题,就是某个版本,控件啥的都能获取到,下一个版本却都没有了。
然后去找开发,开发说没有改过,还说工具有问题。
后面又遇到 appium1.2.2 的一个比较严重的 bug, https://github.com/appium/appium/issues/3503 然后觉得自己学习可以,但是用在工作中有点坑,目前就放弃了这款工具。

#4 楼 @beerbox 遇到这种情况, 你可考虑使用 robotium 或者 apppium 的 selendroid. 不走 Uiautomator 模式

#4 楼 @beerbox 嗯 appium 用来学习真不错

#6 楼 @lihuazhang 这个问题有几个解决方法

  1. 使用 xposed 或者 cydia 修复厂商埋下的坑, 让 Uiautomator 保持正常 2 使用 robotium 或者 selendroid

使用 selendroid 可以让已经写的用例保持不变.
期待未来会有更强悍的封装, 可以在 robotium selendroid Uiautomator 之间自由的切换.
或者 appium 将来底层支持 robotium.

#2 楼 @kasi 厂商是做了什么改动才导致这种情况的, 我很好奇

谢谢大家的回答。
@seveniruby
我觉得很可能跟安卓的版本有关系,我对比了几个手机的 子版本,它们略有不同。
我明天回去公司把 手机刷成一个版本,看看它们是否跟安卓 4.X.X 有关系,有结果会第一时间 share 给大家。

厂商一般都改了内核的 所以有些差异是可以理解的

谢谢大家,我目前测试了一台酷派大神的手机,升级后果然可识别 resource-id 这属性。
很可能是 @kasi 理解的,安卓手机的内核 或者 安卓系统的版本 被改动所导致的问题。

#3 楼 @seasoncool2011 我之前在用 uiautomatorviewer 定位的时候就是 4.4 的能定位,4.2 的不能定位 resource-id,之前遇到这个问题的时候去网上搜了一下,知道了是版本的原因,但知其然不知其所以然

#12 楼 @hobbs 这个的确是版本问题. 猜测跟 Uiautomator 的版本有关.我也没认真研究过版本差异

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