为了账号安全,请及时绑定邮箱和手机立即绑定

检索 Cypress 夹具 JSON 数据的所有相似键值

检索 Cypress 夹具 JSON 数据的所有相似键值

富国沪深 2023-07-29 14:59:59
我很难找到一种干净的方法来从 Cypress 夹具 JSON 文件中的对象中的同一键检索所有值的值。例如,在下面的 JSON 文件(称为myPeople.json)中,我只需要下所有对象firstName的值。people{    "people":[        {            "firstName":"Bob",            "lastName":"Dawson"        },        {            "firstName":"Tom",            "lastName": "Wild"        },        {            "firstName": "Sally",            "lastName": "Rose"        }    ]}如果我想检索 下的所有对象people,我可以执行它cy.fixture("myPeople").its("people),它将漂亮地返回所有对象。事实证明,取回所有firstName 值非常困难。我尝试了以下方法来检索这些值,但它们没有执行我预期的操作。cy.fixture("myPeople").its("people").its("firstName") //This doesn't work likely because it expects a specific object under the people node to look up its firstName key's value但是,如果我传入显式索引,它将返回该索引的firstName 值:cy.fixture("myPeople").its("people").its(0).its("firstName") //This returns the value "Bob".我在这里可能会缺少什么?
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

不考虑 Cypress 本身,您似乎想使用 JavaScriptmap函数。


例如:


let people = {

  "people": [

    {

      "firstName": "Bob",

      "lastName": "Dawson"

    },

    {

      "firstName": "Tom",

      "lastName": "Wild"

    },

    {

      "firstName": "Sally",

      "lastName": "Rose"

    }

  ]

}


let firstNames = people.people.map(person => person.firstName)


console.log(firstNames) // --> [ 'Bob', 'Tom', 'Sally' ] 


查看完整回答
反对 回复 2023-07-29
?
慕村9548890

TA贡献1884条经验 获得超4个赞

一种选择是使用简单的 for 循环并从装置文件中访问所有数组元素。


describe('Get first Name from fixtures', () => {


  beforeEach(() => {

    //Load Fixture File

    cy.fixture('myPeople.json').as('myPeople')

  })


  it('Test', () => {

    cy.get('@myPeople').then((myPeople) => {

      for (var i = 0; i < myPeople.people.length; i++) {

        //Print the first Names

        cy.log(myPeople.people[i].firstName)

      }

    })

  })

})


查看完整回答
反对 回复 2023-07-29
  • 2 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信