Я пытаюсь протестировать приложение Ionic с помощью Protractor, и у меня есть следующий код в объекте моей страницы, который пытается установить флажок:
async shareWithPerson(name): Promise<void> {
var input = this.inputWithName(name)
await browser.wait(ExpectedConditions.invisibilityOf($('.toast-message')), 5000);
await browser.wait(ExpectedConditions.invisibilityOf($('ion-backdrop')), 5000);
await browser.wait(ExpectedConditions.elementToBeClickable(input), 5000);
return input.click();
}
inputWithName(name): ElementFinder {
var xpath = `//ion-label/div/span[@class="text"][contains(text(),'${name}')]/ancestor::ion-item/ion-checkbox`
return element(by.xpath(xpath));
}
Однако, как бы я ни старалсяЯ всегда получаю сообщение об ошибке:
unknown error: Element <button ion-button="" ion-item="" class="button-full-width float-right">...</button> is not clickable at point (897, 369). Other element would receive the click: <ion-backdrop tabindex="-1" class="backdrop-no-tappable hydrated" style="opacity: 0; will-change: opacity; transition-duration: 200ms; transition-timing-function: ease-in-out;"></ion-backdrop>
Несмотря на то, что я жду, чтобы фон был невидимым, и я жду, чтобы элемент стал кликабельным.Я могу обойти это, используя browser.sleep(3000)
, но я бы предпочел не прибегать к арбитражным снам, чтобы обойти проблему.Куда я иду не так?