Cypress JQuery计算前后元素的方法:总是相同的值

Cypress JQuery计算前后元素的方法:总是相同的值,cypress,Cypress,我有一个带有列的表,下面有一个图标,单击后,我可以修改表列。 现在我想计算前后的列数。我有一个可行的解决方案,我在前后调用以下函数,然后使用包装的别名(通过parseInt)进行比较: cy.get('body').then(($el) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const countColsNr = $el.find('th[e2e-tag-header]').

我有一个带有列的表,下面有一个图标,单击后,我可以修改表列。 现在我想计算前后的列数。我有一个可行的解决方案,我在前后调用以下函数,然后使用包装的别名(通过parseInt)进行比较:

cy.get('body').then(($el) => {
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
  const countColsNr = $el.find('th[e2e-tag-header]').length;
  cy.wrap(**to be named**).as(`${s}`);
});
这将对实际列进行计数,并将其保存在要命名的变量中。 但是,如果我使用JQuery方法,它总是得到相同的列号,这是在测试的开始:

const beforetColsNr = Cypress.$('th[e2e-tag-header]').length;
log(beforetColsNr.toString());
    ... column handling code
    ... also tried with wait inbetween steps for debug
const afterColsNr = Cypress.$('th[e2e-tag-header]').length;
log(afterColsNr.toString());
前面的数字和后面的数字是一样的!当我查看浏览器的状态(屏幕截图)时,我可以看到不同的列在计数后的数量。这种JQ方法第二次计算不正确,或者使用第一个值


这是意料之中的事吗?还是有什么我必须调查的?

cypress是异步的,所以beforetColsNr和AfterColsSNR是同时初始化的。
在第一个代码块中的“cypress”模式下,由于使用了.then()。

有趣的是:如果我执行以下操作:expect(beforeColNr,'计算'''之前和之后的列).to.be.greaterThan(afterColsNr);运行程序事先已经知道数字是相同的。请尝试创建一个全局对象变量,因为cypress中仍然支持引用类型-这对我很有用<代码>让globalVariablesObject={}//获取长度的代码;globalVariablesObject.lenghneed=lengthIFound在播放和阅读后,我可以确认这一点。然而,这意味着我必须始终使用这些别名。