移动到页面模型中的函数时,.expect断言不起作用

问题描述 投票:1回答:2

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

我已经尝试将支票分成两个不同的功能,结果相同。

在测试中

         .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()
    }
javascript automated-tests e2e-testing web-testing testcafe
2个回答
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()
}

3
投票

在测试中调用函数时需要'await'。在继续之前,测试并没有等待功能完成。

await navigation.appnavigation();

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.