0

我正在尝试从赛普拉斯格式如下的 json 文件中获取员工 ID,但其返回错误为 Cannot read property 'name' of null

如何检索用户名“Devin Miller”的员工 ID?请帮忙

{
  "data": [
    {
      "role": "Software Engineer",
      "organization": "Google",
      "name": "Remi Arsenault",
      "emplyeeID":"526321",
      "project": "Stadia"
    },
    {
      "role": "Data Analyst",
      "organization": "Google",
      "emplyeeID": "526322",
      "name": "Devin Miller",
      "project": "Stadia"
    }
  ]
}

下面是我的代码

export function GetUserData(employeeName){     
    cy
      .fixture('users')
      .its('data')
      .then((users) => {     
        Users = users.find(user => user.name === employeeName);
      })
  }

export var Users = null;

现在,如果我尝试执行以下操作,那么它会返回错误

var employeeID = Users["Remi Arsenault"].emplyeeID
4

1 回答 1

2

我认为您对 async vs snyc 代码有一些不好的期望。

此外,为了访问夹具数据,您可以尝试这个而不是.its('data)

cy.fixture('users').then((usersJson) => {
    let foundUser = usersJson.data.find(user => user.name === 'Remi Arsenault');
    let emloyeeID = foundUser.employeeID
    ... ['whatever else you want to do can go here inside the then callback.']
});
于 2021-03-23T17:41:57.937 回答