.expect断言在移至页面模型中的函数时不起作用

时间:2019-04-11 20:03:50

标签: javascript automated-tests e2e-testing web-testing testcafe

在单击继续之前,用逻辑替换.wait(8000)来检查iframe中的页面是否已加载。当代码在测试中时,它可以正常工作。我试图将代码移到页面模型中的函数中,并且单击过早(即,与.wait()值设置得太低相同)。

我尝试将支票分成2个不同的功能,并获得相同的结果。

正在测试

         .expect(navigation.appRowFadeIn.exists).ok({ timeout: 8000 });
    await t
         .switchToIframe(navigation.iframe)
         .expect(navigation.pageFrame.exists).ok({ timeout: 10000 });
    await t
         .switchToMainWindow()

在页面模型中

export class Navigation {

    constructor(
        public appRowFadeIn: Selector = Selector('.apps-row.fade-in'),
        public iframe: Selector = Selector('#app-runner'),
        public pageFrame: Selector = Selector('#page_frame')        

    ) { }

    async appnavigation() {
        await t
            .expect(Selector(this.appRowFadeIn).exists).ok({ timeout: 8000 });
        await t
            .switchToIframe(this.iframe)
            .expect(Selector(this.pageFrame).exists).ok({ timeout: 9000 });
        await t
            .switchToMainWindow()
    }

2 个答案:

答案 0 :(得分:3)

我认为appnavigation应该是:

async appnavigation() {
  await t
   .expect(this.appRowFadeIn.exists).ok({ timeout: 8000 });
  await t
   .switchToIframe(this.iframe)
   .expect(this.pageFrame.exists).ok({ timeout: 9000 });
  await t
   .switchToMainWindow()
}

答案 1 :(得分:3)

在测试中调用函数时,

需要“等待”。测试不是在继续执行功能之前等待的功能。

await navigation.appnavigation();

谢谢。