【问题标题】:How can I use page.type() inside page.evaluate() in puppeteer?如何在 puppeteer 中的 page.evaluate() 中使用 page.type()?
【发布时间】:2021-04-03 14:17:05
【问题描述】:

我正在制作一个 Facebook Messenger 'Bot'。我需要评估发送给机器人的最后一条消息,并回复它。收听新消息很简单,但我该如何回应?我试过 :newMessage.textContent = 'Hi' 然后提交。但这不起作用。当然还有 page.type() 不能在 page.evaluate() 中工作

请帮忙

【问题讨论】:

    标签: javascript node.js web-scraping puppeteer


    【解决方案1】:

    不确定这是否是最简单的解决方案,但你可以这样做)

    import puppeteer from 'puppeteer';
    
    const browser = await puppeteer.launch({ headless: false, defaultViewport: null });
    
    const html = `
      <!doctype html>
      <html>
        <head><meta charset='UTF-8'><title>Test</title></head>
        <body>
          <input>
        </body>
      </html>`;
    
    try {
      const [page] = await browser.pages();
    
      await page.goto(`data:text/html,${html}`);
    
      await page.exposeFunction('puppeteerType', async (text) => {
        await page.type('input', text);
      });
    
      await page.evaluate(async () => {
        await window.puppeteerType('Hi from page.type().');
      });
    } catch (err) { console.error(err); }
    

    【讨论】:

      猜你喜欢
      • 2021-05-03
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多