如何在Cypress中向数组添加元素不覆盖,批量存储表单提交URL至JSON
解决Cypress表单提交URL累积存储到JSON的问题
你的代码每次运行都会重新创建空数组并覆盖原文件,导致只能保存单个URL。要实现累积存储,需要先读取已有文件中的数据,再添加新URL后重新写入。
修改后的代码
proposalUrl() { // 读取已有的URL存储文件,不存在则返回undefined cy.readFile('cypress\\test_data\\2Wheeler\\url.json', { failOnStatusCode: false }) .then(existingData => { // 初始化URL数组:已有数据则用原数组,否则为空数组 const urlArray = existingData?.ProposalSubmitUrl || []; // 获取当前页面URL并添加到数组 cy.url().then(currentUrl => { urlArray.push(currentUrl); // 将更新后的数组写入JSON文件 cy.writeFile('cypress\\test_data\\2Wheeler\\url.json', { ProposalSubmitUrl: urlArray }); }); }); }
关键说明
cy.readFile的failOnStatusCode: false参数:确保文件不存在时不会抛出错误,而是返回undefined,避免脚本中断。existingData?.ProposalSubmitUrl || []:处理两种场景:文件已存在则读取原有URL数组;文件不存在则初始化空数组。- 先读取再写入的逻辑:保证每次添加新URL时,都会保留之前存储的所有记录,实现批量累积。
内容的提问来源于stack exchange,提问作者abhijit arnikar
相关产品推荐
相关产品推荐

