如何在 Jetpack Compose for Appium 和 UIAutomator 中设置 id(Xpath 问题)

Tar*_*s12 6 xpath kotlin android-studio android-uiautomator appium-android

我正在使用 Jetpack Compose 和 Appium 以及 UIAutomator。我想为id可组合项设置唯一的值,而不是显示 Xpath,因为: 不建议使用 XPath 定位器,这可能会导致脆弱的测试。请您的开发团队提供独特的辅助功能定位器

在我的 Composable 下的 Android Studio 中,我添加了:

Row(
  modifier = Modifier.semantics { testTagsAsResourceId = true }
    ...
    ) {
       Text(
         modifier = Modifier.semantics { testTag = "testTag" },
Run Code Online (Sandbox Code Playgroud)

现在在 Appium 中我可以看到resource-id= testTag,但id仍然显示 Xpath。

根据这篇文章,我应该能够将其设置为与使用和某些类id相同 ,但我不明白如何 - 我应该在我的可组合项中添加此注释吗?resource-id@AndroidFindByUiSelector

我在这里读到了一个解决方案,但不幸的是,浓缩咖啡不适合我。

我也尝试使用:

modifier = Modifier.semantics { this.contentDescription = "testTag" },
Run Code Online (Sandbox Code Playgroud)

这实际上改变了 Xpath,但仍然显示上面的警告。

这就是我想要的方式(其中 id 和资源 id 具有相同的值):文章中的图片