Cypress:测试只存在断言



是否可以测试只存在断言?例如,我有元素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属性(。

您最好使用该页面上列出的柏树快照或类似软件包。

最新更新