PuppeteerSharp устанавливает флажок reCAPTCHA, но запрос изображения не обрабатывается/не обнаруживаетсяC#

Место общения программистов C#
Anonymous
PuppeteerSharp устанавливает флажок reCAPTCHA, но запрос изображения не обрабатывается/не обнаруживается

Сообщение Anonymous »

Я использую PuppeteerSharp с Chromium в проекте .NET. Я могу найти iframe привязки reCAPTCHA и установить флажок, но после этого reCAPTCHA иногда открывает запрос изображения. Мой текущий код только устанавливает флажок и не обнаруживает и не обрабатывает вызов iframe.
Я не пытаюсь обойти reCAPTCHA. Я хочу понять, как правильно определить появление проблемы с изображением, чтобы я мог остановить автоматизацию, дождаться ручного взаимодействия с пользователем или правильно обработать этот процесс в тестовой среде.
Это код запуска моего браузера:

Код: Выделить всё

var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = false,
Args = DefaultChromeLaunchOptions.Args,
DefaultViewport = new ViewPortOptions
{
Height = DefaultChromeLaunchOptions.ViewPortOptionsHeight,
Width = DefaultChromeLaunchOptions.ViewPortOptionsWidth
},
Timeout = 5000
}).ConfigureAwait(false);
Я получаю кадр привязки следующим образом:

Код: Выделить всё

var anchorFrame = page.Frames
.FirstOrDefault(f => f.Url.Contains("/recaptcha/api2/anchor"));
Затем я устанавливаю флажок

Код: Выделить всё

var checkbox = await anchorFrame.QuerySelectorAsync("#recaptcha-anchor");
await checkbox.ClickAsync();
На этом этапе флажок установлен, но если Google показывает запрос изображения, моя автоматизация не продолжается, поскольку пользовательский интерфейс выбора изображения находится внутри другого iframe.
Каков правильный подход PuppeteerSharp для определения того, появился ли iframe запроса reCAPTCHA после установки флажка?
Например, следует ли мне искать кадр, URL-адрес которого содержит что-то вроде /recaptcha/api2/bframe, а затем подождать, пока пользователь вручную выполнит задание?
.Net версия 5.0
Версия Puppeteer — 10.1.2

Вернуться в «C#»