У меня есть сайт, там я должен проходить регистрацию, я хочу автоматизировать этот процесс...Вся суть в том, что я нажимаю Tab
определенное количество раз ввожу почту и пароль, затем еще раз Tab
и кликаю по кнопки "Регистрация"
Вся проблема в том, что все эти действия проходят в браузере(Google Chrome или др.) Я не знаю как это реализовать, а именно нажатие клавиш не в консоли, может быть нужно создать не консольное приложение?(Любой язык, но я пишу на C++ и C#)
Перекопал кучу интернета...
Создаешь Cef инстанс и делаешь все что тебе нужно. Можно создать сразу CEF без показывания на экран, кстате.
Код на c#, но, думаю, ты сможешь без проблем его подстроить на плюсы, если с ними тебе удобнее:
Симулируешь клик при помощи CEF:
public void MouseClick(int x, int y)
{
Browser.GetBrowser().GetHost().SendMouseClickEvent(x, y, MouseButtonType.Left, false, 1, CefEventFlags.None);
Thread.Sleep(15);
Browser.GetBrowser().GetHost().SendMouseClickEvent(x, y, MouseButtonType.Left, true, 1, CefEventFlags.None);
}
Для чего такие сложности спросишь ты? И почему бы не воспользоватся кликом при помощи JS?
Да потому, что в целях защиты от нехороших людей в браузерах целый ряд кликов блокируются. А вот этот клик сработает в любом случае.
Здесь можно найти пример аплоада файла без открытия openfiledialog: https://stackoverflow.com/questions/51690123/cef-upload-file-without-shown-openfiledialog
в общем... думаю ты идею уловил)
Еще есть вариант с Selenium. Но он будет работать медленнее. Зато стоково есть много удобных хреней вроде кучи селекторов/кликов/захвата текста, выбора елемента дропдауна по названию и подобных штук.
Еще может быть полезным почитать мои ответы здесь: Как пропарсить сайт с авторизацией?
была еще какая-то линка где я развернуто описывал самые разные способа для взаимодействия и парсинга сайтов, но мне ее не удалось найти =(((((
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу сделать чтобы в зависимости от выбранного input отправлялось на нужный метод, Как можно сделать ссылку на этот инпут?
Пару дней назад в cefsharp добавили поддержку расширенийНикакой документации как добавить расширения я не нашел, хотя в коммитах есть инфа
Можно ли в с# CLR код, запустить в "трассировочном" режиме? Можно ли как-то перехватить вызов Invoke? Как можно написать дебаггер под с# код? Единственное...
У нас есть Image и TextBlock, через который мы может задавать источник изображения: