我试图使用firebase TestLab,但它似乎只能针对资源ID。我有这样的元素:
<Input {...props} testID="usernameIput" />
但似乎 testID 没有映射到资源 ID。如果这不是这样做的方法,那么我怎样才能在 react-native 中访问资源 ID?如果我不能在 android studio 中添加资源 ID,有什么办法?
我试图使用firebase TestLab,但它似乎只能针对资源ID。我有这样的元素:
<Input {...props} testID="usernameIput" />
但似乎 testID 没有映射到资源 ID。如果这不是这样做的方法,那么我怎样才能在 react-native 中访问资源 ID?如果我不能在 android studio 中添加资源 ID,有什么办法?
晚了将近 4 年,但从 React Native 0.64 开始,该testId
属性现在映射到resource-id
Android 构建中,这意味着依赖该属性的 Android 测试框架将正常运行。
accessibleLabel
不应该继续使用以前使用的解决方法,因为它实际上破坏了可访问性。可以在此处找到此更改的进一步理由。
在您的视图上同时使用accessible
和使用accessibleLabel
(到目前为止,似乎适用于视图、文本、文本输入),并且 UiAutomatorcontent-desc
将从accessibleLabel
.
目前,我们可以使用 content-desc 来识别标签。
关于可访问性标签的文档: https ://facebook.github.io/react-native/docs/accessibility.html#accessibilitylabel-ios-android 。
<Text
testID="btnText" //works for iOS
accessibilityLabel="btnText" //works for android & iOS content-description
accessible
>
{text}
</Text>
尝试构建调试。这里提出了这个解决方案
您可以使用此处的答案进行调试:
#React-Native 0.49.0+
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
#React-Native 0-0.49.0
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
然后在捆绑后构建APK:
$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `android/app/build/outputs/apk`