在特定条件下,不应将元素呈现到屏幕上。尝试访问该元素会给出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()
,但都无法达到我的目的。
答案 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();
});