Kod aşağıdaki gibi, ilgili element birden fazla olduğu için sonuç olarak alt alta metinler geliyor. Ben istiyorumki 3. metin gelsin. console.log(textsArray[3]); yaptığımda bana 3.metin yerine 3.harfi getiriyor. Nasıl yapabilirim.


const textsArray = await page.evaluate(
() => [...document.querySelectorAll('.y-tree-node')].map(elem => elem.innerText)
);
const textsJoined = await page.evaluate(
() => [...document.querySelectorAll('.y-tree-node')].map(elem => elem.innerText).join('\n')
);
console.log(textsJoined);
console.log(textsArray);
await browser.close();

 

bu kod console.log(textsArray[3]); yaptığında 3. harfi getirmez.
console.log(textsJoined[3]); demediğinden emin misin?

gman

@gman++

cok detayli bakamadim ama textsArray in her y-tree-node innerText'ini iceren bir array olmasi lazim. [3] deyince de 3. elem innerText'i donmesi lazim.

textsjoined ise .join('\n') yapmissin, yani butun elemler satir basi karakteri ile join edilmis, bundan [3] yaparsan 3. harfi dondurur. ama textsArray[3] direk 3. elem in innerTextini dondurmesi lazim.

robokot

Teşekkürler. Joini kaldırıp array[3] yapınca oldu.

goodman
1

mobil görünümden çık