我是新来的 cypress .如有任何提示和帮助,我将不胜感激.我的测试是:
- 转到页面
- 解析来自服务器的响应
- 从回复中提取任何项目
- 然后,我想将该项目保存到一个对象中,以便稍后在测试中使用.
cy.wait('@pageLoaded').then(({ response }) => {
expect(response.statusCode).to.equal(200);
let i = randomItem();
//Create an object
const Item = {
Id: response.body.items[i].id,
IpuCode: response.body.items[i].ipuCode,
Description: response.body.items[i].description,
PackSize: response.body.items[i].packSize,
PackType: response.body.items[i].packType,
};
//Here I'm getting the expected array
cy.log(Item);
})
//And here I want to re-use it
cy.addItemToShoppingCart(Item.value(IpuCode), pharmacyId, Item.value(Id), currentDateTime);
所以,我试着
cy.addItemToShoppingCart(Item.value(IpuCode), pharmacyId, Item.value(Id), currentDateTime);
TH结果:未定义项目
或
cy.addItemToShoppingCart(Item.IpuCode, pharmacyId, Item.Id, currentDateTime);
结果:未定义项目
我也有工作的方法来获得价值并使用它
cy.wait('@pageLoaded').then(({ response }) => {
expect(response.statusCode).to.equal(200);
let i = randomItem();
let ItemGmsCode = response.body.items[i].gmsCode;
cy.log(ItemGmsCode);
cy.wrap(ItemGmsCode).as('itemGmsCode');
})
但我不喜欢每次都这样,我必须将命令包装在一个块中
cy.get('@itemGmsCode').then((gmsCode) => {
//do soemthing
})
还是我想要不可能的事?