Эквивалент транспортира isDisplayed - PullRequest
0 голосов
/ 09 марта 2019

Я хочу утверждать, что элемент существует на странице.Можно проверить, что в транспортире вот так:

expect(element(by.id('button')).isDisplayed()).to.eventually.be.true

Что будет эквивалентно в Селене?Я пытался

expect(driver.findElement(By.id('button')).isDisplayed()).to.be.true

Но я получаю ошибку NoSuchElementError: Unable to locate element: *[id="button"].

1 Ответ

1 голос
/ 09 марта 2019

Таким образом, при вызове driver.findElement вы ищете WebElement на странице.Если он не появится в DOM во время запроса, он вернет NoSuchElementError.

. В качестве альтернативы вы можете сделать driver.wait.Ниже приведен фрагмент селен-вебдрайвера.

driver.wait(() => {
  return driver.findElement(By.id('button')).then(() => {
    return true;
  }).catch(() => {
    return false;
  });
}, 5000);

expect(await driver.findElement(By.id('button')).isDisplayed()).toBeTruthy();
...