Michael Campsall
Michael Campsall

Reputation: 4335

Detox: "Cannot find UI element." when trying to scroll FlatList

This is the code for the tests:


//navigates to the new screen:
  it("should show myFlatListScreen after tap", async () => {
    await element(by.id("navigationButton")).tap();
    await waitFor(element(by.id("myFlatListScreen"))).toBeVisible();
  });

//Passes without issue:
  it("FlatList should be visible", async () => {
    await waitFor(element(by.id("myFlatList"))).toBeVisible();
  });

//Fails with: "Cannot find UI element." error
  it("FlatList should scroll", async () => {
    await element(by.id('myFlatList')).scroll(100, 'down');
  });

How is it that the element can pass the toBeVisible() test and then not exist for scrolling?

EDIT: I figured it out. there is some code before these that looks like this:

  beforeEach(async () => {
    await device.reloadReactNative();
  });

The app is reloading from the start each time which is why that element is no longer available. It looks like I have to write all my tests so they run start to finish for each.

Upvotes: 0

Views: 1216

Answers (1)

Michael Campsall
Michael Campsall

Reputation: 4335

There is some code before these that looks like this:

beforeEach(async () => {
  await device.reloadReactNative();
});

The app is reloading from the start each time which is why that element is no longer available. It looks like I have to write all my tests so they run start to finish for each.

Upvotes: 1

Related Questions