我想要计算一个select元素中选项的数量,以及DOM中某个类别的元素数量。我需要将这两个数量进行比较,并使用Cypress断言。我可以选择所需的选项,并使用each()进行迭代,通过递增计数器来实现。然而,这种方法是异步的,而且也不够优雅。我确定由cy.get()返回的对象具有length属性,但我似乎无法访问它。以下是我期望能够起作用的代码之一。它会向控制台记录undefined。
我知道我的别名很好,而且我的cy.get()正在产生正确的选择元素。
如果我做这样的事情:
cy.get('div[data-cy-type="group-component"]:first').as('firstGroup');
cy.get('@firstGroup').find('[name=group_id]').as('groupSelect');
console.log(cy.get('@groupSelect').children('option').length);
我知道我的别名很好,而且我的cy.get()正在产生正确的选择元素。
如果我做这样的事情:
cy.get('@groupSelect').children('option').each(function(){
console.log(i++);
});
然后它将迭代每个选项。但由于它是异步的,因此在这个流程中没有太大帮助。
cy.get('@groupSelect').children('option').then(options => expect(options.length).to.eq(otherTotal))
。我不确定其他总数(DOM中类的数量)是如何推导出来的,也许如果你发布更多代码,我们可以进一步帮助你。 - Richard Matsen