3

我正在尝试:在命令中传递多个参数并打印文件cy.task()中提到的函数中声明的那些参数值plugins/index.js

问题:函数 print 仅打印第一个参数值并且未定义第二个参数

代码:

//test file with cy.task() command

class LoginPage {
    let site = abc
    let userDetails = xyz
    openPage(env, site, userDetails) {
        cy.task('loadUserAccountDetails', site, 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
  })
}

请帮忙。

4

2 回答 2

1

这通过在 index.js 文件中注册的任务上传递参数来工作。

on('task', {
    loadUserAccountDetails(site, userDetails): validUserDetails(site, userDetails)
})
于 2021-01-04T06:06:54.627 回答
1

看起来只处理了一个参数。但是你总是可以传入一个带有 vars 作为属性的对象。

 on("task", {
    async "rename"({var1, var2, var2}) {

 }

.spec称之为

cy.task('rename', {var1: 'val1', var2:'val2', var3: 'val3'}, ()=>{
            console.log('renamed');
       })
于 2021-06-25T13:30:26.573 回答