Как проверить элемент ушел с помощью webdriverIO, Mocha и Chai - PullRequest
0 голосов
/ 25 апреля 2018

Я работаю над некоторыми автоматизированными тестами, используя webdriverIO, Mocha и Chai. Я продолжаю сталкиваться с той же проблемой, когда хочу проверить, был ли удален элемент.

Я работаю с корзиной покупок, где я удаляю предмет, а затем проверяю, что он пропал. Однако для того, чтобы предмет пропал, требуется некоторое время, поэтому, если я сразу же укажу ожидаемый результат, предмет все еще там.

Я решил это следующим образом:

browser.waitForExist(deletedProduct, 5000, true)
expect (boodschappenLijstPage.isProductPresent(SKU), 'the removed item was still there' ).to.equal(false)

Команда webdriverIO waitfor ожидает исчезновения продукта, и после этого чай ожидает проверки его отсутствия.

Проблема, с которой я столкнулся, заключается в том, что ожидание никогда не подведет. Если продукт не был должным образом удален, waitfortimeout выдаст ошибку, прежде чем я доберусь до ожидаемой части, что означает, что ожидаемая часть будет достигнута только в том случае, если продукт исчезнет

Я прочитал документы для чай, но я не могу найти способ сделать это.

Может ли кто-нибудь показать, как можно ждать, пока продукт исчезнет, ​​не упустив ожидаемого результата (я не хочу использовать browser.pause по понятным причинам)

1 Ответ

0 голосов
/ 26 апреля 2018

Вы можете использовать try catch и в основном ждать ошибки. Когда элемент исчезнет из DOM, селен выбросит NoSuchElementError, и мы сможем его использовать.

isNotPresent(element) {
  try {
    return !element.isVisible()
  } catch (error) {
    return true
  }
}

// or wait for element to disappear from dom

waitForNotVisible(element) {
  browser.waitUntil(() => {
    try {
      return !element.isVisible()
    } catch (error) {
      return true
    }
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...