量角器的等价物被显示

Equivalent of protractor's isDisplayed

我想断言页面上存在一个元素。可以在这样的量角器中检查:

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

Selenium 中的等价物是什么?我试过了

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

但是我收到错误 NoSuchElementError: Unable to locate element: *[id="button"]

因此,当调用 driver.findElement 时,您正在寻找页面上的 WebElement。如果在请求的时候没有出现在DOM中,就会return一个NoSuchElementError.

您也可以做 driver.wait。以下是 selenium-webdriver 片段。

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

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