facebook / react-native

A framework for building native applications using React
https://reactnative.dev
MIT License
117.1k stars 24.07k forks source link

testID, accessibilityLabel information not visible in Appium (Android only) #30226

Open varun-batta-vc opened 3 years ago

varun-batta-vc commented 3 years ago

Description

When inspecting a react-native app on Android via Appium, testing identifiers like testID or accessibilityLabel sometimes appear and sometimes don't. There is no major difference in how nested the elements are for when they appear and when they don't - they just sometimes don't. This is not an issue on iOS, everything works fine there.

Whether, as has been mentioned in various places, I put testID, testID & accessibilityLabel or just accessibilityLabel the issue is there. Whether or not I add the prop of accessible={true} or not, the issue is there.

React Native version:

    OS: macOS 10.15.7
    CPU: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
    Memory: 59.60 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 13.12.0 - /usr/local/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.4 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.9.3 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.0, DriverKit 19.0, macOS 10.15, tvOS 14.0, watchOS 7.0
    Android SDK:
      API Levels: 26, 28, 29
      Build Tools: 28.0.3, 29.0.2, 29.0.3
      System Images: android-23 | Google APIs Intel x86 Atom, android-25 | Google Play Intel x86 Atom, android-29 | Google APIs Intel x86 Atom
      Android NDK: Not Found
  IDEs:
    Android Studio: 4.0 AI-193.6911.18.40.6626763
    Xcode: 12.0.1/12A7300 - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_265 - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 16.13.1 => 16.13.1 
    react-native: 0.63.2 => 0.63.2 
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found```

## Steps To Reproduce
Create a react native app, set up tests via `jest` and `appium` (as can be seen in countless different places online) and simply provide the testing props on a view `testID`, `accessibilityLabel` and for the test use `driver.hasElementByAccessibilityId()` function.

## Expected Results
The element is found based on the accessibility information I provide. Tests may fail due to various other appium issues (namely the driver limitations on the Android side) but the elements should be found.

## Snack, code example, screenshot, or link to a repository:
Sample React-Native View:
```return (
      <>
          <View
            testID="container"
          >
            <Text testID="testText">Test</Text>
          </View>
      </>
    );```

Sample Test code:

expect(await driver.hasElementByAccessibilityId('container')).toBe(true); expect(await driver.hasElementByAccessibilityId('testText')).toBe(true);

ghost commented 3 years ago

There is a PR with a fix for this: https://github.com/facebook/react-native/pull/29610

TomH-e2x commented 2 years ago

Any update for IOS on this ?

pranshuchittora commented 2 years ago

Facing the same issue 0.64.2

retyui commented 2 years ago

⚠️ NOTE:

This problem is not actual starting from react-native@0.65.x, CHANGELOG:

Display the testID as the resource-id for black-box testing frameworks ( #381fb3 by @jdeff)

stale[bot] commented 2 years ago

Hey there, it looks like there has been no activity on this issue recently. Has the issue been fixed, or does it still require the community's attention? This issue may be closed if no further activity occurs. You may also label this issue as a "Discussion" or add it to the "Backlog" and I will leave it open. Thank you for your contributions.

kopax-polyconseil commented 1 year ago

We have the same issue and we are also trying to figure out the relation between those 3 props. It's hard to give a how to write end-2-end guide without knowing how they are related and impact each other.

Have you succeed ? This should be flagged as major bug btw.

FeifanChang commented 1 year ago

Same Problem.

tobywisener commented 10 months ago

Same problem... very frustrating

github-actions[bot] commented 4 months ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 7 days.

pranshuchittora commented 4 months ago

Pls don't close until it is fixed. Thanks 🙌