javascript - 如何在Puppeteer中实现page.type()?

标签 javascript google-chrome puppeteer chromium

我想使用 Puppeteer 按以下形式在邮政编码字段中输入邮政编码。

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

enter image description here

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

UnhandledPromiseRejectionWarning: TimeoutError: waiting for selector "#txtZipCode" failed: timeout 30000ms exceeded

我添加了

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',);
})()

最佳答案

该元素位于 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');

关于javascript - 如何在Puppeteer中实现page.type()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59587674/

相关文章:

Javascript 类型 'false' 无法分配给类型 'string'

javascript - 滚动的迷你 Logo 标题

javascript - 我的 ng-click 没有触发

javascript - 如何使用 HTML 和 CSS 创建可切换按钮

javascript - Chrome 扩展消息传递架构

javascript - Chrome 渲染错误、Slick.js、Flash 动画

javascript - 如何使用 puppeteer 从网站获取所有链接

xpath - 操纵,,遍历xpath选择的链接

node.js - 如何使用 headless : true? 使用 puppeteer 下载文件

css - 显示 :none css issue