Добрый день
Решаем капчу с помощью с#, нажатием чекбокса на Cloudflare Turnstile
Альтернативный способ найти элемент на странице за счет поиска элемента по картинки преобразованной в base64. У зеннопостера при преобразовании дается только демо код, который мы должны понять как работает, спасибо за это. Тут приведен пример работы поиска элемента чекбокса на капче Cloudflare Turnstile на странице за счет готового base64 кода.
Почему так,
потому что у зеннопостера закрыт доступ к получению элементов shadow-root (closed) , ждем в зеннопостере 8, а пока работаем как можем
Спасибо за внимание
Дополнительно: как получить base64 - делаем снимок экрана, далее заходим в paint , там выделяем объект что нужно искать , сохраняем, заходим на https://www.base64-image.de/ , загружаем картинку получаем base64 код
Решаем капчу с помощью с#, нажатием чекбокса на Cloudflare Turnstile
Альтернативный способ найти элемент на странице за счет поиска элемента по картинки преобразованной в base64. У зеннопостера при преобразовании дается только демо код, который мы должны понять как работает, спасибо за это. Тут приведен пример работы поиска элемента чекбокса на капче Cloudflare Turnstile на странице за счет готового base64 кода.
Почему так,
C#:
void setE(string word){ throw new Exception(word); }
int tyBrtype=0;
string tp = instance.BrowserType.ToString().ToLower();
if (tp.Equals("chromium")){ tyBrtype=1; }
if(tyBrtype!=1){ setE("Только для Сhromium"); }
Tab tab = instance.ActiveTab;
var imgHash = "iVBORw0KGgoAAAANSUhEUgAAADAAAAA9CAYAAADrnOpZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAETSURBVGhD7doxDoIwGIbhXye4AjsbI5wDRjgEE1fgBhyAlRHOwcrGxCkY1TbVBDUO+psvTb5nKWUgfWk0qfF0uRGP2YBt29zUP4+AKIrcLb+c3egtBqAxAI0BaAxAYwAaA9AYgMYANAagqZ2J932XaZpkWRZ7rSXLMsnzXMIwdHeO1HZgGAaZ51l18YZ55jiObvZKbQeaprFjXdcSx7G9/tW6rtJ1nX37bdu6u0fqnwGtxRv3Z33aVX4LoTEAjQFoDEBjABoD0BiAxgA0Bjwzx0At92cFQWDHd9TOxH3f218k/iFNU6mqys2O1HagLEtJkuTj2/qGWXxRFG72iv+VQGMAGgPQGIDGADQGoDEAzfMAkStWLWCMR24thgAAAABJRU5ErkJggg==";
Document mainDocument = tab.MainDocument;
if (mainDocument.IsVoid){ return -1; }
//ResourceManager rm = new System.Resources.ResourceManager("", System.Reflection.Assembly.GetExecutingAssembly());
string rectangleString = tab.FindImage(imgHash, new[] { new Rectangle(0, 0, mainDocument.Width, mainDocument.Height) }, 90);
if (!String.IsNullOrWhiteSpace(rectangleString)){
string[]split = rectangleString.Split(',');
Rectangle rectangle = new System.Drawing.Rectangle(System.Convert.ToInt32(split[0].Trim()), System.Convert.ToInt32(split[1].Trim()), System.Convert.ToInt32(split[2].Trim()), System.Convert.ToInt32(split[3].Trim()));
if (!rectangle.IsEmpty){
rectangle = new System.Drawing.Rectangle(rectangle.X + 30, rectangle.Y + 34, 6, 6);
tab.RiseEvent("click", rectangle, "Left");
}
}
Спасибо за внимание
Дополнительно: как получить base64 - делаем снимок экрана, далее заходим в paint , там выделяем объект что нужно искать , сохраняем, заходим на https://www.base64-image.de/ , загружаем картинку получаем base64 код
Вложения
-
10 КБ Просмотры: 19
-
16,3 КБ Просмотры: 38
Последнее редактирование: