I made the code below to scrape some data from a webpage. When I execute this message show up in the log console: Error: Evaluation failed: TypeError: Cannot read property 'length' of undefined at puppeteer_evaluation_script:7:39 Browser Closed
This is my code:
const puppeteer = require("puppeteer");
const chalk = require("chalk");
var fs = require("fs");
    
const error = chalk.bold.red;
const success = chalk.keyword("green");
    
(async () => {
      try {
        var browser = await puppeteer.launch({ 
          headless: false,
          defaultViewport: null
         });
        var page = await browser.newPage();
        
        await page.setDefaultNavigationTimeout(0);
        await page.goto('https://synotec.tn/marque/bomi/?ppp=-1');
        
        await page.waitForSelector('h4.product-title');
        var news = await page.evaluate(() => {
            var titleNodeList = document.querySelectorAll('h4.product-title').firstChild;;
            var linkList = document.getElementsByClassName('product-title').firstChild;
            var priceList = document.querySelectorAll('ins');
            var stockStateList = document.querySelectorAll('p.in-stock');
            var titleLinkArray = [];
            for (var i=0; i<titleNodeList.length; i++){
                titleLinkArray[i] = {
                    title: titleNodeList[i].innerText.trim(),
                    link: linkList[i].getAttribute("href"),
                    price: priceList[i].innerText.trim(),
                    stock: stockStateList[i].innerText.trim()
                }       
            }
            return titleLinkArray;
        }
        )
        await browser.close();
        fs.writeFile("bomi.json", JSON.stringify(news), function(err) {
            if (err) throw err;
            console.log("Saved!");
          });
          console.log(success("Browser Closed"));
      } catch (err) {
        console.log(error(err));
        await browser.close();
        console.log(error("Browser Closed"));
      }
    })();
