Aquí está mi código para escribir valores obtenidos en el archivo .json.
cy.readFile(filename).then((product) => { for (var i = 1; i < lens; i++) { cy.xpath('/html/body/app-root/div/mat-sidenav-container/mat-sidenav-content/app-configurable-product/div[1]/mat-table/mat-row[' + i + ']/mat-cell[2]').then((txt) => { var namee = txt.text() cy.log(namee) product.product_name = namee cy.writeFile(filename, product, {flag: 'a+'}) }) } })Quiero obtener datos en el siguiente formato .json.
{
"product_name": [" Camiseta de ajuste estándar Jam & Honey para niña ", " Sudadera con capucha para niños ", " Camiseta sin mangas para mujer "]
}
Tal vez use each en lugar de for loop
cy.readFile(filename).then((product) => { if (!product.product_name) product.product_name = [] // initial cy.xpath('/html/body/app-root/div/mat-sidenav-container/mat-sidenav-content/app-configurable-product/div[1]/mat-table/mat-row') .each($row => { cy.wrap($row).find('mat-cell').eq(2).invoke('text') .then(text => { product.product_name.push(text) }) }) .then(() => { cy.writeFile(filename, product) }) })Puede seleccionar varias filas y convertirlas en una matriz de textos
cy.xpath('/html/body/app-root/div/mat-sidenav-container/mat-sidenav-content/app-configurable-product/div[1]/mat-table/mat-row') .find('mat-cell').eq(2) .then($cells => { const texts = [...$cells].map(cell => cell.innerText) // array of texts cy.readFile(filename).then((product) => { product.product_name = texts cy.writeFile(filename, product) }) })