首页 > 解决方案 > .expect 断言在页面模型中移动到函数时不起作用

问题描述

用逻辑替换 .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()
    }

标签: javascriptautomated-testse2e-testingweb-testingtestcafe

解决方案


我认为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()
}

推荐阅读