排毒:“找不到 UI 元素。”尝试滚动 FlatList 时

Posted

技术标签:

【中文标题】排毒:“找不到 UI 元素。”尝试滚动 FlatList 时【英文标题】:Detox: "Cannot find UI element." when trying to scroll FlatList 【发布时间】:2019-07-19 00:41:34 【问题描述】:

这是测试代码:


//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');
  );

为什么元素可以通过toBeVisible() 测试,然后不存在滚动?

编辑:我想通了。在这些之前有一些代码如下所示:

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

应用程序每次都从头开始重新加载,这就是该元素不再可用的原因。看来我必须编写所有测试,以便它们从头到尾运行。

【问题讨论】:

【参考方案1】:

在这些之前有一些代码如下所示:

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

应用程序每次都从头开始重新加载,这就是该元素不再可用的原因。看来我必须编写所有测试,以便它们从头到尾运行。

【讨论】:

以上是关于排毒:“找不到 UI 元素。”尝试滚动 FlatList 时的主要内容,如果未能解决你的问题,请参考以下文章

使用 toBeVisible() 期望和 tap() 操作排毒部分可见按钮的行为不同

排毒:如何测试多行 TextInput

Pubnub 阻止排毒同步

如何在排毒测试中从 RNN 中识别导航选项卡按钮

排毒(Android):device.reloadReactNative 失败

混合玩笑期待与排毒期待