如何获取去重日程时间并存储到array,实现可用性自动判断?
解决思路
1. 先验证时间去重逻辑的正确性
- 单独输出去重前后的时间集合,直接确认是否真的无重复项。比如用
console.log(原数组, 去重后数组)(JS)或print(原列表, 去重后列表)(Python)查看结果。 - 统一时间格式:如果存在
"2024-05-20 10:00"和"2024/05/20 10:00"这类格式差异,会导致去重失效,必须先把所有时间转成统一格式(比如时间戳、标准ISO格式)再去重。 - 选择可靠的去重方式:优先用时间戳对比(最稳妥,避免格式或对象类型差异问题),也可以用
Set(JS)、list(set())(Python)但要注意时间对象的可哈希性。
2. 明确可用性检查的判定标准
- 把「时间可用」的判断逻辑抽成独立函数,单独测试是否能正确返回
true/false:- 若是前端自动化(如Playwright/Selenium),写
isTimeAvailable(time)函数,定位对应时间元素后,检查是否有available类、按钮是否可点击、无「已占用」标签等。 - 若是接口判断,确认接口返回的状态码、字段值(比如
status: "available")是否被正确解析。
- 若是前端自动化(如Playwright/Selenium),写
- 处理边界情况:比如当前时间前后1分钟的临界时间,要明确判定规则,避免误判。
3. 简化自动化流程的执行逻辑
- 采用清晰的「遍历+条件分支」结构,避免嵌套过深:
# Python伪代码示例 unique_times = 获取去重后的时间数组() for time in unique_times: if 检查时间可用性(time): 执行对应操作(time) # 若只需执行第一个可用时间则加break,若要执行所有可用项则去掉 # break else: continue # 自动跳至下一项,无需额外处理
- 加异常捕获防止流程中断:在检查或操作步骤中捕获错误,标记当前时间异常后继续下一项:
// JS伪代码示例 for (const time of uniqueTimes) { try { if (checkAvailability(time)) { doAction(time); } } catch (err) { console.log(`检查时间${time}出错,跳过:`, err); continue; } }
4. 调试定位问题节点
- 加关键日志:在去重后、检查可用性前、判定结果、操作执行后都打印信息,比如:
- 去重后的数组内容
- 当前正在检查的时间
- 可用性判定结果
- 操作是否执行成功
通过日志就能快速定位问题:是去重失效?还是可用性判断错误?还是流程分支跳转异常?
- 单步调试:代码实现用调试工具逐行执行,低代码工具(如UiPath)单步运行每个动作,观察变量值和流程走向是否符合预期。
5. 处理特殊场景
- 动态加载时间:如果时间选项需要滚动页面才会加载,要确保获取数组前已加载完所有时间,避免漏项。
- 并发冲突:若存在多端操作(人工/其他脚本),在执行操作前再做一次可用性校验,防止时间在检查后到执行前被占用。
内容的提问来源于stack exchange,提问作者aldrine00
相关产品推荐
相关产品推荐

