Android Dexguard release apk未显示UI automator中元素的资源ID

Android Dexguard release apk未显示UI automator中元素的资源ID,android,automation,appium,android-uiautomator,dexguard,Android,Automation,Appium,Android Uiautomator,Dexguard,在使用dexguard混淆apk之后,元素资源ID在uiautomator工具中不可见 dexguard发布版本能否用于自动化? 如何为dexguard发布版本保留元素资源ID?是。我已经自动化了许多应用程序,这些应用程序几乎没有资源id(如果有的话)。即使那些使用资源id的元素也要记住,与HTML不同,它们并不总是唯一的——许多元素都可以包含相同的资源id 如果向我提供了一个资源id,并且我仔细检查了页面元素,发现该id是唯一的,我将经常使用它。在我看来,元素通常使用XPath更一致地找到,这

在使用dexguard混淆apk之后,元素资源ID在uiautomator工具中不可见

dexguard发布版本能否用于自动化?
如何为dexguard发布版本保留元素资源ID?

是。我已经自动化了许多应用程序,这些应用程序几乎没有资源id(如果有的话)。即使那些使用资源id的元素也要记住,与HTML不同,它们并不总是唯一的——许多元素都可以包含相同的资源id

如果向我提供了一个资源id,并且我仔细检查了页面元素,发现该id是唯一的,我将经常使用它。在我看来,元素通常使用XPath更一致地找到,这允许使用更详细的定位器

通常,我会做一些类似的事情

"//android.widget.TextView[@text='whatever']
或进一步:

"//android.widget.TextView[@text='whatever' and @index=1]"

-keepresources id/**
成功了。

但我的疑问是,我们有一个原生android应用程序,它被dexguard弄糊涂了。模糊处理后,uiautomator无法查看资源ID。我们在dexguard配置文件中保留了资源ID配置,但资源ID仍然不可见。你有没有对混淆的本机版本apk进行自动化处理?@Eric Lafortune有什么建议吗?我对混淆器不太熟悉。它是否隐藏了比资源id更多的内容?我的回答的要点是,您不一定要有资源id才能形成可用的定位器。或者您正在执行其他需要资源id的操作?是的,我们需要用于自动化的资源id,这是本机应用程序。此外,dexguard正在隐藏自动化所需的所有资源id。我们正在使用资源id与元素交互。您是否将xpath称为变通方法?如果我们必须使用资源ID,您能提供解决方案吗?@dheeraj在您的应用程序项目的dexguard/proguard规则文件中