Javascript 如何重新加载并等待元素出现?

Javascript 如何重新加载并等待元素出现?,javascript,node.js,web,puppeteer,Javascript,Node.js,Web,Puppeteer,我试着搜索这个答案,但在互联网上似乎没有答案。我要做的是使用NodeJS重新加载页面,直到它找到包含我想要的查询的元素。如果有帮助的话,我将在节目的其他部分使用木偶演员 好的,我使用了两个答案中的函数,并得出了这个,可能是未优化的代码: const puppeteer = require("puppeteer"); (async () => { try { const browser = await puppeteer.launch(); cons

我试着搜索这个答案,但在互联网上似乎没有答案。我要做的是使用NodeJS重新加载页面,直到它找到包含我想要的查询的元素。如果有帮助的话,我将在节目的其他部分使用木偶演员

好的,我使用了两个答案中的函数,并得出了这个,可能是未优化的代码:

const puppeteer = require("puppeteer");

(async () => {
  try {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto("http://127.0.0.1:5500/main.html");
    await page.waitForSelector("#buy-button");
    console.log("worked");
  } catch (err) {
    console.log(`ERROR: ${err}`);
  }
})();  

                              
但我不知道如何重新加载页面,并一直重新加载,直到我想要的id出现。例如,不断重新加载youtube,直到你想要的视频出现为止(这是一个不实际的例子,但我认为它能说明问题)。

你可以使用“Waitunt:”networkidle2“来确保页面加载完毕。显然,更改url,除非你实际使用的是evil.com

const puppeteer = require("puppeteer"); // include library
(async () =>{
  const browser = await puppeteer.launch(); // run browser
  const page = await browser.newPage(); // create new tab
  await page.goto(
    `http://www.evil.com`,
    {
      waitUntil: "networkidle2",
    }
  );
  // do your stuff here
  await browser.close();
})();

好的,我更新了问题,希望你能帮忙
const puppeteer = require("puppeteer"); // include library
(async () =>{
  const browser = await puppeteer.launch(); // run browser
  const page = await browser.newPage(); // create new tab
  await page.goto(
    `http://www.evil.com`,
    {
      waitUntil: "networkidle2",
    }
  );
  // do your stuff here
  await browser.close();
})();