You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jet Pack Compose应用Appium UiAutomator2 Driver元素定位解决方案

解决Jetpack Compose应用的Appium UiAutomator2元素定位问题

针对基于Jetpack Compose开发的Android应用,常规resource ID定位策略不再适用,开发者已通过testTags定义定位标识,但我不想切换到Espresso Driver,因此采用以下方案解决UiAutomator2 Driver下的元素定位问题:

通过设置disableIdLocatorAutocompletion能力禁用包名自动补全,结合XPath语法定位元素。

实现代码

desiredCapabilities.setCapability("disabledLocatorAutocompletion", true);
desiredCapabilities.setCapability("appiumVersion", "2.1.3"); // 该能力从Appium 2.0.6版本开始支持

driver.findElement(By.xpath("//*[@resource-id='primary_button']"));

关键说明

  • 选用Appium 2.1.3是因为它是云服务商支持的、首个高于2.0.6的稳定版本,而disableIdLocatorAutocompletion能力仅在2.0.6及以上版本提供
  • 必须使用XPath而非By.id()定位:直接调用driver.findElement(By.id("primary_button"))无法生效,原因是Appium默认的ID定位策略会自动拼接应用包名,导致无法匹配到Compose元素对应的testTag标识
  • disableIdLocatorAutocompletion能力正是为解决Compose场景下ID定位的包名自动补全问题而设计的

如果这个方案对你有帮助欢迎使用,也欢迎分享更优的解决方案!

内容的提问来源于stack exchange,提问作者Mikhail Nersesov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:07:27