我正在测试Tiktok应用程序。我不是此应用程序的所有者。每次应用更新资源ID名称时,都会使用新名称进行更新。获取没有资源id的元素并保持稳定测试的最佳解决方案是什么?
kpbpu0081#
资源ID名称正在更改,因为应用已进行模糊处理,每次您对应用进行模糊处理时,都会为资源ID、类名、字段名、变量名、方法名等生成新的标识符。要识别某个UI元素,您可以尝试假设UI没有太大变化,这意味着您尝试按顺序指定元素,例如第二个按钮。我不确定布局检查器是否仍然工作Android Studio的这个方便的工具能够读出当前显示的布局与所有UI元素及其名称和类型。或者您可以尝试解析布局和/或片段XML文件。如果它们的文件名被混淆,你也可以手动识别相关的布局XML文件,下次再比较新旧应用程序版本的所有布局cml文件,并对它们在文本级别上的相互接近程度进行排序。与您手动识别的文件最接近的匹配很可能是您正在搜索的布局XML文件。
jbose2ul2#
使用“面向用户”的选择器,如文本,甚至内容描述(如果应用程序设计良好,它将是屏幕阅读器看到的)。如果你不是应用程序的所有者,你不应该依赖你无法控制的东西,如身份证。
2条答案
按热度按时间kpbpu0081#
资源ID名称正在更改,因为应用已进行模糊处理,每次您对应用进行模糊处理时,都会为资源ID、类名、字段名、变量名、方法名等生成新的标识符。
要识别某个UI元素,您可以尝试假设UI没有太大变化,这意味着您尝试按顺序指定元素,例如第二个按钮。我不确定布局检查器是否仍然工作Android Studio的这个方便的工具能够读出当前显示的布局与所有UI元素及其名称和类型。
或者您可以尝试解析布局和/或片段XML文件。如果它们的文件名被混淆,你也可以手动识别相关的布局XML文件,下次再比较新旧应用程序版本的所有布局cml文件,并对它们在文本级别上的相互接近程度进行排序。与您手动识别的文件最接近的匹配很可能是您正在搜索的布局XML文件。
jbose2ul2#
使用“面向用户”的选择器,如文本,甚至内容描述(如果应用程序设计良好,它将是屏幕阅读器看到的)。
如果你不是应用程序的所有者,你不应该依赖你无法控制的东西,如身份证。