我正在启动用React Native编写的新项目。我想建议开发人员写正确的&自定义定位器,稍后将用作Appium元素。
当我深入研究这个话题时,我有点迷失了两者的想法:testID和accessibilityLabel。
在Appium官方网站上,它写道:"这里的解决方案是确保不仅在重要组件上使用testID属性,还设置accessibilityLabel属性,以确保始终可以通过Appium的"accessibility id"定位器策略找到元素";
另一方面,我发现了一个短语:对于React Native中的iOS,你可以使用testID,对于android,据我所知,accessibilityLabel是唯一的方法">
Android和IOS Appium自动化的定位器属性命名的完美方法是什么
您必须同时使用这两种功能才能在android和iOS上运行。
最简单的命名约定是prefix_id。在这里,前缀可以是您的类名或从父容器传递的值。通过这种方式,您将能够在单个屏幕上为相同的元素提供唯一的名称。例如,假设您创建了一个输入框组件。该组件将在您的容器中多次使用,并且您需要唯一的ID。在这种情况下,只需传递前缀,输入和标签都将获得唯一的id。用于测试
这里还有另一层复杂性。AccelabilityLabel也用于画外音,您可能希望在发布版本中添加另一个有意义的文本。因此,最好创建一个处理所有这些的注入器类。如果您需要特定于平台的处理,那么可以在这个注入器类中完成。
对于测试构建,您还需要将可访问的prop标记为false。https://github.com/facebook/react-native/issues/6560