如何测试在量角器中找不到元素

时间:2018-07-23 13:31:54

标签: angular protractor angular5 chai

在特定条件下,不应将元素呈现到屏幕上。尝试访问该元素会给出handleChange(event) { this.setState({ newProduct: event.currentTarget.value )} } render() { return( <SearchBar onChange={this.handleChange} /> <Product content={this.state.newProduct} /> ); } ,这是正确的行为,因为该元素不会退出。如何测试该元素不存在?我尝试了No element found using locator:...elem.isPresent(),但都无法达到我的目的。

1 个答案:

答案 0 :(得分:0)

只需将代码包装在try catch中。如果未找到该元素,则可以捕获错误并返回false。可能如下所示:

async function tryDisplayed(element: ElementFinder): Promise<boolean> {
  try {
    var isPresent = await element.isPresent();
    if(!isPresent) {
      return false;
    }
    return await element.isDisplayed();
  } catch(error) {
    return false;
  }
}

然后在测试中,您可以执行以下操作:

t.it('should not be visible', async function() {
  expect(tryDisplayed(by.css('your_element_locator'))).toBeFalsy();
});