没有找到选择器的节点,但 HTML 页面上有选择器

Tyl*_*igi 8 html javascript node.js google-chrome-devtools puppeteer

我在尝试使用 Puppeteer 在输入字段中输入文本时遇到了一些麻烦。这是我正在使用的网站的 HTML,它显示id该字段是creditCardNumber

HTML

当我尝试使用page.focusand 时page.type,它说没有用于选择器的节点。这段代码是错误的,还是我可以做一些更好的事情?

await page.waitFor(1500);
await page.focus('#creditCardNumber');
await page.focus('#creditCardNumber', '1234', {delay: 5});
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

UnhandledPromiseRejectionWarning:错误:未找到选择器的节点:#creditCardNumber

Ser*_*nko 8

当您试图将注意力集中在 DOM 元素上时,它可能不会被渲染。

尝试page.waitForSelectorpage.focus调用前使用:

await page.waitFor(1500);
await page.waitForSelector('#creditCardNumber');
await page.focus('#creditCardNumber');
await page.focus('#creditCardNumber', '1234', {delay: 5});
Run Code Online (Sandbox Code Playgroud)

  • 这意味着您的 DOM 元素未呈现或未在 iFrame 内呈现。对于 iFrame,您可以使用 `page.frames` 找到它,然后使用选择器在 iFrame 元素上调用 `frame.focus`。 (2认同)