Appium [已解决] 请教各位大神为啥有的手机上没有 Resource ID 的?内详

Terry Zhang · 2014年02月08日 · 最后由 cjy1225624162 回复于 2020年09月09日 · 1779 次阅读

见上图,是中兴 V987 上的(已经 Root 过),还试过华为的也一样
在 ddms 中没有显示 resource-id, 其实应该有的,导致 appium 找不到 element(driver.findElement(By.id("com.xxx.xxx name:id/xxx"));)。

但是在三星手机上就能看到 resource-id,Appium 也能抓到 element。

使用 Robotium 的话不管能不能看到 resource-id,都能根据 resource-id 抓到 element。

请问各位大神有什么方法能解决 Appium 上的问题么?目前通过 List list = driver.findElements(By.className("textfield"));然后遍历能够得到 element 但是无法区分这些 EditText

共收到 8 条回复 时间 点赞

Android 4.2.1

#2 楼 @terryuki 这是 Android 4.3 的 features 么?

谢谢你的回复,不过你发的连接似乎和我的提问无关。 简单来说,就是说 Appium 无法在中兴(目前测试手机为 V987 android 4.2.1),华为手机(目前测试手机为 C8815 android 4.1)根据 resource-id 来识别 element。但是它在三星手机上就没有这个问题,目前测试手机为 Note3 N9002 android 4.3(没有 Root),Note2 N719 android 4.3(Root 过)。

个人猜测是和手机 rom 有关系,因为中兴华为手机在 ddms 里也看不到 resource-id.如上面的截图。

android4.3 以上版本才支持 resource-id

#4 楼 @terryuki 你的三星用的是 4.3 以上的 其他手版本不高 所以导致的这种情况

4.3 以下的要想用 resource-id 来识别的话 只能用 SELENDROID, 4.3 以上可以用 android 来识别。

appium 连接华为手机报了这个错,但是小米手机又不会,是为什么呢
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: io.appium.uiautomator2.common.exceptions.UiAutomator2Exception: Timed out after 10000 milliseconds waiting for root AccessibilityNodeInfo

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