javascript - 赛普拉斯,JavaScript 变量在 .each 方法中增加后仍然等于 0
问题描述
嗨,我有这样的柏树测试,我不知道为什么在 .each 方法之后 zeroCounter 变量仍然为 0。我检查了日志,并且在 .each 方法的末尾是否块 zeroCounter 等于 7。你能帮我解决这个问题吗?
it('TEST', () => {
var zeroCounter = 0;
cy.addDimensionByPropertyPanel('date');
cy.exAddMeasureByPropertyPanel('data_with_nulls');
cy.get('[tid="qv-object-VLC]').should('be.visible');
cy.exShowValues();
cy.exSelectDataAndGaps("Show as connections");
cy.get('.vizlib-line-values')
.each(($value) => {
expect($value.text()).to.not.equal('-');
if ($value.text() === "0.00") {
zeroCounter++
cy.log(zeroCounter);
}
})
expect(zeroCounter).to.equal(7);
cy.qsTakeScreenshot('Show null data as zero');
});
解决方案
问题是赛普拉斯不会按需执行内部调用,而是进入队列等待执行。在您的情况下,该行在expect(zeroCounter).to.equal(7);
之前执行.each(...)
,因此值为 0。
您需要使用expect
内部then()
工作:
cy.get('.vizlib-line-values')
.each(($value) => {
...
}).then(() => {
expect(zeroCounter).to.equal(7);
});
推荐阅读
- java - 如何在 Android 10 上创建视频文件路径
- gdb - GDB 定义命令:print $arg1 在定义时不打印正确的值
- pyspark - PySpark:在 Pandas UDF 中使用 pyproj 包时,如何解决“python worker 无法连接回来”错误?(将纬度/经度转换为 UTM 坐标)
- python - .eq() 方法给出的结果与 [ == ] 不同
- templates - 没有使用最新的 Kotlin 导航抽屉活动模板的 onNavigationItemSelected 实现
- visual-studio-code - 在 VS-Code 中按 ALT+Shift+F 时调整换行符
- html - 将标签应用于 svg 路径
- javascript - 如何将更新后的 Context 的状态值传递给它的子组件?
- python - Flask - 在多线程上下文中无法访问 G 变量
- firebase - 我们可以使用 url 查询字符串将数据推送到 firebase 实时数据库吗?