gpt4 book ai didi

javascript - 等待使用 puppeteer 显示 Google Captcha

转载 作者:行者123 更新时间:2023-12-05 01:08:46 25 4
gpt4 key购买 nike

我无法使用 Puppeteer 验证页面上是否存在 div,我不知道为什么...我想使用此代码在页面上限定验证码:

puppeteer
.launch(options)
.then(async (browser) => {
const page = await browser.newPage();
await page.setViewport({ width: 1280, height: 720 });
console.log("[+] Connecting...");
await page.goto("https://www.google.com/recaptcha/api2/demo");
console.log("[+] Connected");
page.waitForNavigation()
if (await page.$('div.recaptcha-checkbox-border') !== null)
console.log('[+] Resolving captcha');
})
.catch((err) => {
console.log(err);
});

但我的 if 总是错误的,我不知道为什么。

这里是手动设置范围的元素的屏幕截图:

scoped element

最佳答案

这个脚本应该可以工作

'use strict';

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch({ headless : false});
const page = await browser.newPage();

console.log("Opening page");
await page.goto('https://www.google.com/recaptcha/api2/demo');
console.log("Opened page");

const frame = await page.frames().find(f => f.name().startsWith("a-"));
await frame.waitForSelector('div.recaptcha-checkbox-border');
console.log("Captcha exists!");

await browser.close();
})();

验证码似乎位于始终以 name=a- 开头的 iframe 中(但我无法通过有限的测试确认)

您首先需要获取 iframe,然后在 iframe 加载后等待选择器。这是输出,尝试更改 iframe 名称或选择器名称以查看是否失败。

output

关于javascript - 等待使用 puppeteer 显示 Google Captcha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65714824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com