0

我正在尝试使用 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”))”

提前致谢。

4

2 回答 2

0

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

于 2020-09-04T15:20:51.740 回答
0

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

于 2020-09-10T19:19:14.963 回答