问题描述
我正在尝试:在 cy.task()
命令中传递多个参数并打印在 plugins/index.js
文件中提到的函数中声明的那些参数值
代码:
//test file with cy.task() command
class LoginPage {
let site = abc
let userDetails = xyz
openPage(env,site,userDetails) {
cy.task('loadUserAccountDetails',userDetails)
}
}
module.exports = LoginPage
// plugins/index.js file where the event is registered with declared function
const validUserDetails = (site,userDetails) => {
console.log('--->' + site) // This prints abc
console.log('--->' + userDetails) // This prints undefined
}
module.exports = (on,config) => {
// `on` is used to hook into varIoUs events Cypress emits
// `config` is the resolved Cypress config
on('task',{
loadUserAccountDetails: validUserDetails
})
}
请帮忙。
解决方法
这是通过在 index.js 文件中注册的任务传递参数来实现的。
on('task',{
loadUserAccountDetails(site,userDetails): validUserDetails(site,userDetails)
})
,
看起来只处理了一个参数。但是你总是可以传入一个对象,并将变量作为属性。
on("task",{
async "rename"({var1,var2,var2}) {
}
并在 .spec
中将其称为
cy.task('rename',{var1: 'val1',var2:'val2',var3: 'val3'},()=>{
console.log('renamed');
})