page.type() inside page.evaluate()



我想在以下输入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

我刚学木偶戏,请帮助我。谢谢你。

根据pavelsaman的建议,将input.ng-tns-c58-69page.$eval()混合使用,效果良好。下面是最后的代码:

let domain = 'input.ng-tns-c58-69';
await page.$eval(domain, (el, value) => el.value = value, pass.name);

最新更新