For the following result like structure
<div class="results">
<div class="result">
<div class="name">x</div>
<div class="price">99</div>
</div>
<div class="result">
<div class="name">y</div>
<div class="price">88</div>
</div>
</div>
I want to store in an list of array like this
var resultList = [{"name":"x","amount":"99"}, {"name":"y","amount":"88"}]
And in cypress, I have the following code in cypress but it prints null and I am not sure how to resolve it?
let listOfResults = [];
let singleResult = {};
cy.get('[class="results"]').each((resultItem) => {
singleResult = {};
//Retrive name
cy.wrap(resultItem)
.find('div[class$="name"]')
.invoke("text")
.then((val) => {
cy.log("singleResult value for Title:" + val);
singleResult["title"] = val;
cy.log("singleResult::" + JSON.stringify(singleResult));//prints correctly
});
//Retrive price
cy.wrap(resultItem)
.find('div[class$="amount"]')
.invoke("text")
.then((val) => {
cy.log("singleResult value for Title:" + val);
singleResult["title"] = val;
cy.log("singleResult::" + JSON.stringify(singleResult)); //prints correctly
});
});
listOfResults.push(JSON.stringify(singleResult)); //singleResult became blank
cy.log("list:" + JSON.stringify(listOfResults));
Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW
Comments
Post a Comment