问题描述
我正在尝试使用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,而是提醒用户。