Appium [奇葩问题?] 在 ubuntu18 和 windows10 上分别使用 appium-desktop,结果在 appium inspector 定位到同一个 app 相同页面元素的属性不同?

monster · November 16, 2019 · Last by omeletteWithEgg replied at December 04, 2019 · 661 hits

麻烦帮忙看下这个问题
在我家里ubuntu上appium-desktop使用inspector获取app的同一个元素(图中已标出),获取其属性content-desc为“团队任务”,text属性值为空,可以用ACCESSIBILITY_ID去定位。

同样的app,在公司windows电脑上使用inspector获取到此元素,获取其属性text为“团队任务”,但content-desc属性值为空,可以用text去定位。

疑问:为什么在这两系统上inspector来分析元素定位,其属性却不同呢?导致我在两端调试时代码不能直接通用。

也查了一些资料,这个疑问困扰了好几天没能搞明白。。。

最佳回复

关于text与content-desc属性区别,以官方文档为准,我做了一些整理,可以了解下,content-desc属性相当于iOS的AccessibilityIdentifier辅助功能标签,Appium也特意把Android的content-desc属性与ACCESSIBILITY_ID做了关联,可以从[1][2][3][4]文章中得知,此目的也是为了统一移动端辅助功能标签名称,所以text与content-desc并不是相同属性

[1] https://github.com/appium/appium-uiautomator2-server/blob/9a5f19e2f26db1a1faa21530ba2cddefae605410/app/src/main/java/io/appium/uiautomator2/model/UiAutomationElement.java#L179

[2] https://github.com/appium/appium-uiautomator2-server/blob/752a8a8551b7e8cf7050182b826e234c0839a548/app/src/main/java/io/appium/uiautomator2/handler/FindElement.java#L96

[3 ]https://developer.android.com/reference/android/support/test/uiautomator/By

[4]https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/accessibility/AccessibilityNodeInfo.java#2708

共收到 7 条回复 时间 点赞

可能有类似android sdk版本或者其他判断条件,可以向研发了解下这里的逻辑,最后你可以发下不同系统的android配置环境信息和appium版本配置,如果有差别,可以统一环境配置,重新验证一次

  1. 是同样的手机吗?手机android版本差异多大?uiautomator在不同手机上不同rom下表现会不一样
  2. text和content-description这两个属性都可以认为是text
ltyd5788 回复

我看了appium-inspector解析app后的xml结构,跟我在windows上查看时解析出来的xml结构不同,回到家我先统下版本试试。

cmlanche 回复

确实是不同的安卓手机,没考虑过这个的影响。我试试看
另外:text和content-description这两个属性都可以认为是text,试了下这个确实可以换着用。

关于text与content-desc属性区别,以官方文档为准,我做了一些整理,可以了解下,content-desc属性相当于iOS的AccessibilityIdentifier辅助功能标签,Appium也特意把Android的content-desc属性与ACCESSIBILITY_ID做了关联,可以从[1][2][3][4]文章中得知,此目的也是为了统一移动端辅助功能标签名称,所以text与content-desc并不是相同属性

[1] https://github.com/appium/appium-uiautomator2-server/blob/9a5f19e2f26db1a1faa21530ba2cddefae605410/app/src/main/java/io/appium/uiautomator2/model/UiAutomationElement.java#L179

[2] https://github.com/appium/appium-uiautomator2-server/blob/752a8a8551b7e8cf7050182b826e234c0839a548/app/src/main/java/io/appium/uiautomator2/handler/FindElement.java#L96

[3 ]https://developer.android.com/reference/android/support/test/uiautomator/By

[4]https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/accessibility/AccessibilityNodeInfo.java#2708

自己搞个云服务器就不用家里公司都可以玩 很方便的,比较方便 学生级别的100来块https://cloud.tencent.com/act/cps/redirect?fromSource=gwzcw.3018172.3018172.3018172&redirect=10140&cps_key=1941cbd3d7c4cd819b0d6629831ba208&from=activity

我也遇到这个问题了,看了其他帖子说是webview版本不一致导致的?至今也没找到解决方法

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up