问题描述
我已经使用detox
了一段时间,但是升级到17.5.+
之后,我开始遇到Popups测试的问题。我找不到有关堆栈溢出和排毒问题的有用信息。
以下是问题:我进行了一项测试,以检查是否显示了正确的弹出窗口。看起来像:
it('expect to see "Answer correct" popup',async () => {
await openQuestionnaire('theory_questionnaire_learn_button');
await scroll('questionnaire_scroll_view',150);
await element(by.id('select_1_button')).tap();
await element(by.id('questionnaire_answer_button')).tap();
// @ts-ignore
await expect(element(by.id('questionnaire_simple_popup'))).toBeVisible();
// @ts-ignore
await expect(element(by.id('questionnaire_simple_popup'))).toHaveLabel('correct');
await delay(500);
// @ts-ignore
await expect(element(by.id('questionnaire_simple_popup'))).toNotExist();
});
此操作的背景:点击问卷调查_answer_button后,将显示弹出窗口。它在500ms内可见,然后消失。对于这500毫秒,我使用的是setTimeout({ () => dismiss() },500)
。
弹出窗口在模拟器上可见,但是我的测试失败,并显示Test Failed: No elements found for “MATCHER(identifier: == “questionnaire_simple_popup”)”
检查层次结构我在那里找不到此元素。也许其他人已经面临这个问题并知道解决方案了?
解决方法
如果找不到该标识符,则表示该标识符未使用本机视图的可访问性标识符正确设置。与弹出式开发人员联系,以确认testID是否已正确转发到本机视图。
,好的,几次尝试后我发现了什么。超时从500ms增加到3000ms后,它开始工作。 2500仍然失败,2750尚未尝试。关于匹配器。 by.id
和by.text
也可以使用。
所以原因可能是超时时间。