You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为DayJS获取的当前时间添加2-3分钟容错范围?

解决方案

你没法只靠修改timeNow常量实现需求——单个时间值覆盖不了一个时间范围。正确的做法是生成允许的时间区间,再断言页面显示的时间落在这个区间内,具体代码如下:

const dayjs = require('dayjs');

// 计算时间范围的上下限(当前时间±3分钟,可按需改成2分钟)
const lowerBound = dayjs().subtract(3, 'minute');
const upperBound = dayjs().add(3, 'minute');

// 获取页面时间并解析为DayJS对象,再做区间判断
cy.get('#dateTime').invoke('text').then(pageTimeText => {
  // 按页面显示的格式解析时间(这里对应"H:mm")
  const pageTime = dayjs(pageTimeText, 'H:mm');
  
  // 断言页面时间在允许区间内,'[]'表示包含上下边界
  expect(pageTime.isBetween(lowerBound, upperBound, 'minute', '[]')).to.be.true;
});

关键细节说明:

  • 用subtract和add生成容错区间,替换原来的精确时间匹配逻辑;
  • invoke('text')直接获取元素文本,避免contains的模糊匹配局限性;
  • 解析页面时间时明确指定格式'H:mm',防止DayJS自动解析出错;
  • isBetween的第四个参数'[]'表示包含边界值(比如允许9:27或9:33的情况),不需要的话可以改成'()'。

内容的提问来源于stack exchange,提问作者kkibbey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:39:53