Appium android 真机测试遇到问题

抓蝴蝶 · 2015年04月16日 · 最后由 陈恒捷 回复于 2015年04月17日 · 2411 次阅读

在模拟器上运行应用,UIAutomatorViewer 能找到元素 ID,脚本里找元素也大都是通过元素 ID 来获取的。
但是连接真机后运行发现运行不动,用 UIAutomatorViewer 发现真机上边所有元素都没有 ID 这一项。
这个是什么原因?难道是真机必须要有 root 最高权限吗?需要怎么做?求大神指教

共收到 16 条回复 时间 点赞

需要 4.3 或以上的手机才行,之前版本不支持通过 ID 查找。这个是新手问题哦,网上有很多相关信息的。

#1 楼 @walkwall 确实是新手,网上找了很多找不到。。。,我用的小米手机,系统版本 4.2.1

给多一些信息啊,例如模拟器的 Android 是什么版本,真机是什么版本,没有 id 这一项具体是什么情况(发个有 id 的和没 id 的 UIAutomatorViewer 截图对比一下)?

UIAutomator 不需要 root 的。

#3 楼 @chenhengjie123 模拟器是 4.3 的,真机是小米 4.2.1,有 ID 的截图:

没有 ID 的情况就是根本没有 resource id 这一项

在 stackoverflow 找到一个比较靠谱的答案:

the explanation is android 4.3 has the id component in uiautomatorviewer. Android versions less than API level 18 will not be able to interact with the resource-id of the element.

只有 API level 18 (4.3) 以上的 UIAutomator 才能使用 resource-id

http://stackoverflow.com/questions/21399503/real-device-vs-emulator-uiautomator-does-not-show-resource-id-for-the-app

#5 楼 @chenhengjie123 刚找了个 4.4.2 的手机,还是没有 resource-id

#6 楼 @mzl19860128 这么奇怪?你确定你新找的手机是 Android 4.4.2 ?你再换台手机试试?
API 18 以上应该都有的。

#6 楼 @mzl19860128 更新下 Android SDK Tools,看截图是老版本,最新的界面会多几个控件。

#7 楼 @chenhengjie123 确定。。。这就是我感觉奇怪的地方,感觉跟 root 权限没有关系啊

#8 楼 @sanlengjingvv 你说的是 UIAutomatorViewer 的版本吗?

#10 楼 @mzl19860128 嗯,经他提醒确实你的 uiautomatorviewer 版本比较低(高一点的左上角应该有 4 个按钮),有可能是这个问题。
你升级后再试试?

#11 楼 @chenhengjie123 好的,我试下

#11 楼 @chenhengjie123 升级完了 uiautomatorviewer(android sdk)还是没有 resource ID。。。

#13 楼 @mzl19860128 你升级后的 Android SDK Tools 版本是多少?应该至少 24 以上了。
确认版本够高后,你用个 4.4 的模拟器试试?

虽然可能性很低,但还有可能是真机的系统对 uiautomator 部分做了更改。如果 4.4 模拟器可以那就可以排除 uiautomatorviewer 的版本问题了。

#14 楼 @chenhengjie123 模拟器是可以的,就是手机找不出来 ID,感觉很奇怪,感觉就是哪个地方少了什么设置,应该是模拟器跟真机之间的差别,难道是要把手机完全开放 root 权限?

#15 楼 @mzl19860128 这不是模拟器与真机的区别,是你的手机 ROM 和原版系统的区别。模拟器运行的是原版系统。
你再换个 4.4 的手机试试吧。

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