testing - 赛普拉斯:比较两列:列值和日期值
问题描述
我必须首先使用新的处理值检查状态列的值,然后才能比较日期。
如果我必须比较新数据与处理数据,则新日期将大于处理日期。因为数据首先按值排序,然后按日期升序排序。因此,如果我找到两个具有通常状态的值,我可以进行以下比较:
cy.get('#hometable > tbody > tr > td:nth-child(6)').each(($e, index, $list) => {
if (index == 0){time_prev=0}
time = Math.round(new Date($e.text()).getTime() / 1000)
assert.isBelow(time_prev, time, 'previous date is below actual')
time_prev = time
})
//so I take the value status
cy.get('#hometable > tbody > tr > td:nth-child(5)').each(($e, index, $list) => {
const text = $e.text()
if (text.includes('new')) {
expect(text).to.eq('\n new\n ')
}
if (text.includes('processing')) {
expect(text).to.eq('\n processing\n ')
}
})
我应该能够在一个周期内同时进行这两个比较,但我不知道从哪里开始
我给出以下错误:
解决方案
您给出的第一个答案在逻辑上很好。我做了一些改变。我注意到它没有进入 then 循环
let arrayOfColumnOne = [];
let arrayOfColumnTwo = [];
cy.get('#hometable > tbody > tr > td:nth-child(6)').each(($e, index, $list) => {
if (index == 0) {
time_prev = 0
}
time = Math.round(new Date($e.text()).getTime() / 1000)
arrayOfColumnTwo.push(time)
})
//so I take the value status
cy.get('#hometable > tbody > tr > td:nth-child(5)').each(($e, index, $list) => {
const text = $e.text()
arrayOfColumnOne.push(text)
}).then(() => {
for (let i = 1; i < arrayOfColumnOne; i++) {
if (!arrayOfColumnTwo[i]) {
throw new Error('Something is wrong with the array selectors')
}
if (arrayOfColumnOne[i].includes('new') || arrayOfColumnOne[i].includes('processing')) {
expect(arrayOfColumnOne[i]).to.eq('\n new\n ')
assert.isBelow(arrayOfColumnTwo[i - 1], arrayOfColumntwo[i], 'previous date is below actual')
} else if (arrayOfColumnOne[i].includes('processing') && arrayOfColumnOne[i - 1].includes('new')) {
expect(text).to.eq('\n processing\n ')
assert.isAbove(arrayOfColumnTwo[i - 1], arrayOfColumntwo[i], 'previous date is below actual')
} else {
//some other code
}
}
})
我不明白为什么它不进入then
推荐阅读
- neo4j - 删除具有相同属性值的重复关系,保存与 Cypher 的其他关系
- java - 在 Wiremock 中评估 XPath 表达式
- sql-server-agent - 维护作业冻结在执行状态
- r - R:编码循环结构
- wordpress - Wordpress 自定义帖子类型和帖子类型子过滤器
- javascript - 从 React 中的 API 获取数据并使用 Chart.Js 将其可视化
- java - 无法使用 Java/JSP 将数据插入 Apache Derby 数据库
- flutter - 将背景颤动的屏幕录制为流
- git - 如何将文件从一个存储库移动到另一个 git 存储库
- java - 内容类型 'application/x-www-form-urlencoded;charset=UTF-8' 不支持