【发布时间】:2021-05-03 01:53:42
【问题描述】:
我想在下面的输入class中输入一些用户详细信息
<span class="myClass">
<input aria-autocomplete="list" role="searchbox" aria-haspopup="true" class="ng-tns-c58-69"
autocomplete="off" type="text" aria-controls="pr_id_7_list" aria-expanded="false" aria-
activedescendant="p-highlighted-option" placeholder="Pass" size="24" maxlength="16">
</span>
首先,我尝试使用page.$eval()方法输入详细信息
let domain = 'input[class=ng-tns-c58-69]';
await page.$eval(domain, (el, value) => el.value = value, pass.name);
但它抛出了错误:
Error: Evaluation failed: DOMException: Failed to execute 'querySelector' on 'Document':
'input[class=ng-tns-c58-69]' is not a valid selector.
然后我用page.evaluate()方法作为
await page.evaluate(() => {
let domain = 'ng-tns-c58-69';
let elements = document.getElementsByClassName(domain);
for (let el of elements) {
el.click();
el.keyboard.type(passenger[0].name, {delay: 100});
}
})
这给出了错误提示:
Error: Evaluation failed: TypeError: Cannot read property 'type' of undefined
我是木偶师的新手,请帮助我。 谢谢。
【问题讨论】:
-
第一个例子中
input.ng-tns-c58-69作为选择器怎么样? -
@pavelsaman,对不起,我意识到我不应该回答自己。你会发布解决方案吗? (我会删除我的)
-
我想你可以回答你自己的问题,没问题。保持这种方式。
标签: javascript web-scraping puppeteer webautomation