Замена .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()
}