Tia*_*ago 2 javascript node.js puppeteer
我试图将一个值传递给木偶操纵者创建的浏览器,但出现此错误:
无法读取未定义的属性“getElementById”
async function start() {
const browser = await puppeteer.launch({
headless : false
});
const page = await browser.newPage();
await page.goto('https://www.google.com/recaptcha/api2/demo?invisible=true');
await page.document.getElementById("g-recaptcha-response").innerHTML === response.text
await Promise.all([
page.click('#recaptcha-demo-submit'),
]);
}
Run Code Online (Sandbox Code Playgroud)
错误在这一行:
await page.document.getElementById("g-recaptcha-response").innerHTML === response.text
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
谢谢。
您只能getElementById在页面上下文中使用。使用page.evaluate,例如:
const html = await page.evaluate(() => {
return document.getElementById("g-recaptcha-response").innerHTML;
});
console.log(html);
Run Code Online (Sandbox Code Playgroud)
这将获取该元素的 the innerHTML,将其发送回 Puppeteer,并将其记录在 Node 中。
如果您想将某些内容传递到页面,则必须将其传递给page.evaluate,例如
await page.evaluate((arg) => {
return document.getElementById("g-recaptcha-response").value = arg;
}, '123');
Run Code Online (Sandbox Code Playgroud)
这会将文本区域的值设置为123。
| 归档时间: |
|
| 查看次数: |
4919 次 |
| 最近记录: |