在单击继续之前,用逻辑替换.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()
}
答案 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();
谢谢。