【问题标题】:Puppeteer Error: No Node Found for selectorPuppeteer 错误:找不到选择器的节点
【发布时间】:2021-10-15 04:29:55
【问题描述】:

在转到我请求的 URL 后,我试图通过 Puppeteer 单击输入元素 我通过使用输入一个数量

await page.type('#bidamount_temp', bidAmount);

Puppeteer 没有抱怨这个错误: 但是,在字段中输入值后;我想让木偶师点击这个按钮:

<input type="submit" value="Place Bid " class="buttonspb" style="font-size:15px; margin-top:-2px;" onclick="return url_check();">

所以我在我的 node.js 代码中使用它:

await Promise.all([
  page.click('input[value="Place Bid "]'),
  page.waitForNavigation({ waitUntil: 'networkidle0' }),
]);

但是它给了我一个错误:

错误:错误:未找到选择器的节点:input[value="Place Bid"]

【问题讨论】:

  • 欢迎来到 SO!没有看到您正在使用的页面,很难提供帮助,因为选择器看起来很好,按原样显示。在真实站点上,JS 可能会隐藏它,click 可能存在可见性问题(通常需要使用page.evaluate(() =&gt; document.querySelector('input[value="Place Bid "]').click())),或许多其他潜在问题。

标签: javascript node.js puppeteer


【解决方案1】:

您可以在错误消息中看到它从按钮值中去除空格:您有"Place Bid ",puppeteer 将其转换为"Place Bid"。您应该使用另一个选择器来访问该按钮,例如input[type="submit"].buttonspb

【讨论】:

  • 我意识到,登录后我不能调用另一个函数并传入页面,但必须在同一个函数中运行所有 Puppeteer 方法,否则它不会在同一个浏览器中导航.. 所以现在它可以工作了,因为我将所有代码行放在同一个函数中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多