React Native:如何在排毒测试中从一个屏幕导航到另一个屏幕

问题描述

我正在尝试使用Detox为我的应用程序编写测试。但是在从登录屏幕导航屏幕时,由于找不到匹配器,我的测试失败。 我在渲染函数中正确添加了testID,但仍然出现错误。 这是我的测试代码:

it('should login successfully',async () => {
await device.reloadReactNative();

await element(by.id('textInput_username_login')).typeText('test');
await element(by.id('textInput_password_login')).typeText('123456');
await element(by.text('Log In')).tap();
await expect(element(by.id('otp'))).toBeVisible();
});

出现以下错误:

Test Failed: No elements found for “MATCHER(identifier == “ otp” && NOT DESCENDANT(class ⊇ “RCTTextView” && identifier == “ otp”))”

谢谢。

解决方法

不能正确添加testID。如果您在iOS上运行,则可以添加--loglevel verbose参数,并在打印的层次结构中查找您希望看到的元素,并检查id是否在其上或什至在屏幕上。

,

另一种选择是使用Flutter的布局检查器查找元素并验证其具有与“ otp”匹配的测试ID:https://fbflipper.com。您可以将其下载为桌面应用程序,尽管Mac会抱怨,因为它不是来自App Store,而是提醒用户。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...