操纵符单击后等待网络空闲

问题描述 投票:0回答:1

[现有的常见问题解答都没有一个明确的解决方案,例如]

所以这是一个供人们查看/尝试/修复的简单工作示例:

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch({headless: true});
  try {
    const page = await browser.newPage();

    await page.setViewport({width: 800,height: 800});
    const response = await page.goto(`https://stock.finance.sina.com.cn/usstock/quotes/TSLA.html`, {
        waitUntil: 'networkidle0'
      });
    //console.log(await page.content());

    let selector = `div.kke_menus_tab_edage > div:nth-child(6) > a`
    await page.waitForSelector(selector)
    await page.click(selector)

    const inputElement = await page.$('div.sec.clearfix div.block.block_hq')
    await inputElement.screenshot({path: 'sina-finance.png'})

  } catch (err) {console.log(err.message);}
  finally {
    await browser.close();
  }
})()

因此,总而言之,

  • click不触发任何导航
  • inputElement已经存在,即使在单击之前也无法等待。

[任何简单的解决方案,例如page.waitForNavigation,例如page.waitForNetwork({waitUntil: 'networkidle0'})?否则,我将向puppeteer项目提出一个错误,以提供一个。谢谢。

javascript wait puppeteer
1个回答
0
投票
例如

const pageClick = page.click(selector); const response = page.waitForResponse(response => response.url() === 'https://example.com' && response.status() === 200); await Promise.all([ pageClick, response ]);

© www.soinside.com 2019 - 2024. All rights reserved.