用逻辑替换.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()
}
我认为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()
}
在测试中调用函数时需要'await'。在继续之前,测试并没有等待功能完成。
await navigation.appnavigation();
谢谢。