Cypress测试报错:testRegistration.forEach is not a function
问题解决:testRegistration.forEach is not a function
报错原因
testRegistration是你定义的函数,而forEach是数组的专属方法,函数类型无法调用该方法,这就是报错的直接原因——你错误地把函数当成数组来遍历了。
正确改写方案
要简化代码,应该在testRegistration函数内部对传入的参数对象进行遍历,而非在函数外部遍历函数本身。具体修正如下:
修正后的完整代码:
export const testRegistration = ({ firstName, lastName, email, password, confirmPassword }) => { // 将参数对象转为键值对数组,遍历处理每个输入框 Object.entries({ firstName, lastName, email, password, confirmPassword }).forEach(([fieldName, value]) => { cy.get(`input[name="${fieldName}"]`).type(value); }); return cy.contains('button', 'Register').click(); };
代码说明
Object.entries(...):把传入的参数对象拆分成[字段名, 对应值]的数组(比如["firstName", "示例名字"]),让对象具备可遍历性forEach(([fieldName, value]) => {...}):用数组解构直接获取每个项的字段名和值,避免手动索引取值- 选择器
input[name="${fieldName}"]:修正了原代码中name= "${argument}"的空格问题,确保选择器能准确匹配到对应的输入框
内容的提问来源于stack exchange,提问作者twinklets
相关产品推荐
相关产品推荐

