I am trying to scrape the list of results from Google Maps. Example: Visit https://www.google.com/maps/search/gym+in+nyc Get all results in an array, loop Starts and click element#1, extract data, back to results page and continue loop.
const finalData = async function () {
    const arr = [];
    const resultList = [...[...document.querySelectorAll("[aria- 
    label^='Results for']")][0].children].filter((even, i) => !(i % 2));
    for (const eachElement of resultList) {
        let response = await scrapePage(eachElement);
        arr.push(response);
    }
    return arr;
 };
async function scrapePage(elem) {
    // Clicks each element
    let click = await elem.click();
    // Grabs Just the Title
    const titleText = await setTimeout(function () {
        let title = document.querySelector(".section-hero-header-title 
span").innerText;
        return title;
      }, 3000);
// setTimeout to cause delay before click the back button
setTimeout(function () {
document.querySelector(".section-back-to-list-button").click();
      }, 5000);
return titleText;
     }
    const final = finalData().then((value) => {
    return value;
     });
I have no idea why when I try the above code in devtools, only the last result is clicked and why my const variable "final" is filled with array of random numbers.
 
    