【问题标题】:How to implement page.type() in Puppeteer?如何在 Puppeteer 中实现 page.type()?
【发布时间】:2020-01-04 03:33:38
【问题描述】:

我想使用 Puppeteer 在以下表单的邮政编码字段中输入邮政编码。

https://www.hudhomestore.com/Listing/BrokerSearch.aspx?sLanguage=ENGLISH

脚本运行后,我希望看到邮政编码出现在表单的邮政编码字段中。但是,相反,我收到以下错误消息。

UnhandledPromiseRejectionWarning:TimeoutError:等待选择器“#txtZipCode”失败:超过超时 30000 毫秒

我加了一个

page.waitForNavigation({ waitUntil: 'domcontentloaded', });

每次页面更新时的命令according to this SO answer。但这无济于事。

我做错了什么?

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    waitUntil: 'load',
  });
  const page = await browser.newPage();
  const navigationPromise = page.waitForNavigation({ waitUntil: 'domcontentloaded', });
  await page.goto('https://www.hudhomestore.com/Listing/BrokerSearch.aspx?sLanguage=ENGLISH');
  navigationPromise;
  await page.waitForSelector('#txtZipCode');
  await page.type('#txtZipCode', '79936',);
})()

【问题讨论】:

    标签: javascript google-chrome puppeteer chromium


    【解决方案1】:

    元素位于 iframe 中。试试这个:

    const page = await browser.newPage();
    await page.goto('https://www.hudhomestore.com/Listing/BrokerSearch.aspx?sLanguage=ENGLISH');
    await page.waitForSelector('#inWin107');
    const iframeElement = await page.$('#inWin107');
    const frame = await iframeElement.contentFrame();
    await frame.waitForSelector('#txtZipCode');
    await frame.type('#txtZipCode', '79936');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 2021-03-02
      • 2021-01-18
      • 2021-05-03
      • 2021-01-10
      • 1970-01-01
      相关资源
      最近更新 更多