react-native - 有没有一种方法可以使用 Detox E2E 测试在 FlatList 中找到一个元素
问题描述
因此,在测试我的应用程序时,我使用了一个数据集。由于数据集有很多条目,我使用 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');
推荐阅读
- swift - 使用伪终端 (PTY) 的 Swift 流程
- asp.net - 带有 OidcClient 的身份服务器 4
- c++ - 消除变量的 const 副本
- xml - Oracle 上的 XML 解析
- swift - 无法使用 QuickLook 预览文件
- ios - 苹果支付账单地址税计算
- slf4j - 我想使用以下属性将信息记录到两个不同的文件中
- java - 从 Dell EMC Centera 获取代码时,我们遇到了本机代码问题
- google-cloud-platform - Wireguard 连接后无法上网
- ruby-on-rails - 安装 bcrypt-ruby gem 时无法构建 gem 原生扩展