Проверка наличия элемента без добавления паузы - PullRequest
1 голос
/ 13 июля 2020

У меня есть функция, которая проверяет, существует ли элемент, и выполняет определенное действие. В настоящее время мой код работает отлично, однако я не хочу добавлять в код паузу. Если я уберу паузу, мой тест пропустит consumerApp.$(HomeScreen.closeButton).click();

logout () {
        driver.pause(2000)
        if (consumerApp.$(HomeScreen.closeButton).isDisplayed()) {
            consumerApp.$(HomeScreen.closeButton).click();
        }
        consumerApp.$(AccountScreen.accountTab).click();
        consumerApp.execute('mobile: scroll', {'direction': 'down'});
        consumerApp.$(AccountScreen.logoutButon).click();
        consumerApp.$(AccountScreen.confirmButton).click();
        consumerApp.$(LoginScreen.emailField).waitForExist(7000)
    }

1 Ответ

3 голосов
/ 13 июля 2020

Я бы посоветовал go через официальную документацию на webdriver.io.

Существует API, который служит вашей цели. Используя это, я бы обновил вашу функцию, как показано ниже.

logout() {

consumerApp.$(HomeScreen.closeButton).waitUntil(() => {
    this.isDisplayed();
}, {timeout: 5000, interval: 500});

if (consumerApp.$(HomeScreen.closeButton).isDisplayed()) {
    consumerApp.$(HomeScreen.closeButton).click();
}
consumerApp.$(AccountScreen.accountTab).click();
consumerApp.execute('mobile: scroll', {
  'direction': 'down'
});
consumerApp.$(AccountScreen.logoutButon).click();
consumerApp.$(AccountScreen.confirmButton).click();
consumerApp.$(LoginScreen.emailField).waitForExist(7000)

}

Ссылка:

https://webdriver.io/docs/api/element/waitForDisplayed.html https://webdriver.io/docs/api/element/waitForClickable.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...