我想使用 Puppeteer 按以下形式在邮政编码字段中输入邮政编码。
https://www.hudhomestore.com/Listing/BrokerSearch.aspx?sLanguage=ENGLISH脚本运行后,我希望看到邮政编码出现在表单的邮政编码字段中。但是,我收到以下错误消息。
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/