【发布时间】:2019-12-28 00:51:47
【问题描述】:
我正在尝试使用 puppeteer 输入输入字段,但我收到以下错误。
Error: failed to find element matching selector "#cardCvc-input"
我的代码是:
await page.$eval('#cardCvc-input', e => e.value = "000")
DOM中的节点如下:
<input _ngcontent-ng-cli-universal-c1="" autocomplete="off" cccvc="" class="form-control ng-pristine ng-
invalid ng-touched" id="cardCvc-input" maxlength="4" minlength="3" name="cardCvc" pattern="[0-9]{4}|[0-
9]{3}" required="" type="tel">
希望有人可以帮助告诉我我做错了什么。请注意,当我检查页面源时,我实际上并没有看到 DOM。这是一堆javascript代码。跟这个有关系吗?
还注意到有iframe父节点。
【问题讨论】:
-
你在等待选择器出现在
eval之前吗? -
是的,我是。请参阅我对以下答案的评论。
-
它在 iframe 中吗?
-
我怎么知道?
-
我不认为它的 iframe。它看起来像一堆动态生成 HTML DOM 的 javascript 代码