有没有一种方法可以使用 Detox E2E 测试在 FlatList 中找到一个元素

Is there a way I can find an element in a FlatList using Detox E2E testing

所以在测试我的应用程序时,我使用了一个数据集。由于数据集有很多条目,我使用 FlatList 来显示我的列表。创建列表后,我希望能够验证并点击某些列表项。下面,我附上了我正在尝试使用的代码,但它对我不起作用。如果有人对此有更好的想法,请告诉我。

我认为应该采用的方法。我想不出还有什么可以让 FlatList 滚动并找到我要找的项目。

let isNotFound = true;
while (isNotFound) {
   try {
       await waitFor(element(by.id((edit_details.index).toString()))).toBeVisible().withTimeout(2000)
       isNotFound = false;
   } catch (e) {
       await element(by.id('credit_history_list')).swipe('up', 'slow', 0.2)
   }
}
await element(by.id((edit_details.index).toString())).tap();

它确实有助于滚动列表,并且在实际找到我要查找的条目时一直滚动。但是 .tap() 函数不起作用。相反,排毒继续下一行代码。

有更好的方法吗?

提前致谢!

这听起来很符合 Detox' whileElement() API

我想你要找的是这个:

const itemId = (edit_details.index).toString();
const listId = 'credit_history_list';
await waitFor(element(by.id(itemId))).toBeVisible()
        .whileElement(by.id(listId))
        .scroll(100, 'down');