react-native-owl icon indicating copy to clipboard operation
react-native-owl copied to clipboard

Unable to find or interact with any elements on Android

Open PaperbagWriter opened this issue 2 years ago • 5 comments

I ran your example app with no problem on Android.

On the other end our mature app does not work as expected. takeScreenshot works as expected but every interacting API method does nothing and hangs. toExist and press do not find element. I'm 100% certain I have the right testID. We also have e2e tests with appium having no issues finding those elements by test ids.

We are on "react-native": "0.71.8"

Is there something I'm missing?

const { press, takeScreenshot } = require('react-native-owl');

const setDelay = (delay) => new Promise((resolve) => setTimeout(resolve, delay));

jest.setTimeout(50000);

describe('App.tsx', () => {
  it('presses a button, then takes a screenshot', async () => {
    await setDelay(5000);
    await press('ButtonSignIn');
    // never reaches this
    const screen = await takeScreenshot('afterButtonPress');
    expect(screen).toMatchBaseline();
  });
});

PaperbagWriter avatar Sep 14 '23 19:09 PaperbagWriter

Hi @PaperbagWriter, can you post your owl config?

I'm guessing you're building the Android debug buildType. I've found that if you set this to Release, it won't timeout anymore.

Not sure what is wrong with the debug buildType just yet - but maybe it unblocks you.

frankcalise avatar Dec 08 '23 03:12 frankcalise

I am experiencing the same thing on my mature app. Except takeScreenshot, other apis are timing out the tests.

AdityaVandan avatar Feb 12 '24 15:02 AdityaVandan

Same here, it seems press can't find those elements on the screen. Any ideas to give a try?

danibrutal avatar Mar 05 '24 10:03 danibrutal

In case it can help someone, we noticed this was an issue in our monorepo setup, due to how the client/index.app.ts is implemented. If you have the node_modules in the root, and the package in a different directory, it's not gonna work.

We managed to make it work via pnpm setting shamefully-hoist=true in the .npmrc file.

danibrutal avatar Mar 19 '24 15:03 danibrutal