是否可以测试只存在断言?例如,我有元素A、B和C。我断言
cy.get('element-a').should('exist');
cy.get('element-b').should('exist');
cy.get('element-c').should('exist');
然后我删除A并断言
cy.get('element-a').should('not.exist');
但是,有没有任何方法可以测试页面上不存在其他元素,例如D或Q,我可能根本不知道这些元素?
您可以使用.find('*')
获取每个派生元素(child、grandschild、曾孙等(。
例如,
cy.visit('http://example.com');
cy.get('body')
.find('*')
.then(descendents => {
return [...descendents].map(d => d.tagName)
})
.should('deep.eq', ['DIV', 'H1', 'P', 'P', 'A'])
请注意,tagNames是allcaps。
但是,您的HTML中是否只有element-a
这样的标记似乎值得怀疑。你可以应用一个过滤器,确切的代码取决于你的选择器是什么(标签名、类、id、数据cy属性(。
您最好使用该页面上列出的柏树快照或类似软件包。