Автоматизация действий браузера
Периодически работаю с автоматизацией работы в браузере (например, чтобы каждый день бронировать себе место в опенспейсе офиса) и каждый раз приходится искать новую программулину, потому что ➡
- Она работала только на Windows.... а как на маке...((
- Теперь она только платная......🤔
- Нужно держать компуктер включенным (особенно если винда), а хотелось бы в облаке...
В большинстве из них нет адекватного редактора действий — это когда ты серфишь в окне браузера, а программа записывает за тобой действия.
Либо его вообще нет, либо он работает очень странно, и приходится открывать браузер и самостоятельно копипастить туда — сюда XPath элементов.
Абсолютно случайно подумал об этом и вспомнил, что мне всегда интересно было разобрать, как оно работает, и собрать свой конструктор для автоматизации действий в браузере...
Собственно, представляю свою реализацию 🥸
Я решил пойти простым путём, не забираться в .NET, городить свой браузер, конструктор поверх него и просто сделать всё на вебе.
Страница загружается через CURL, после чего отправляется в iframe, и на него добавляется скрипт для обработки курсора и его действий.
P.S. Это самая первая демо-версия. Позже я перешёл на работу с headless-браузером, и в ходе тестов выяснилось, что всё ломается на всплывающих элементах (потому что при передаче HTML iframe не отображает выполненный в браузере JavaScript — т.е. различные всплывающие окошки и т.д.).
Поэтому переделал все на работу через скриншоты из браузера и разметку элементов относительно их координат и размеров, прямо поверх скриншота
Чуть позже покажу новую версию и то, как все получилось 😁
А в телеграме материалы выходят чуточку раньше
Сейчас примерно везде антиботы стоят, они очень ограничивают автоматизацию работы в браузере. И если даже сейчас получилось их обойти, послезавтра они будут работать по новым правилам и опять нужно учиться обходить
Смотря какой юзеркейс рассматривать. Одно дело — бронировать стол в офисе, а другое — парсить товары в ИМ
Но и в том и другом случае — это можно решить :)
сейчас получилось их обойти, послезавтра они будут работать по новым правилам и опять нужно учиться обходитьИ это хорошо, благодаря этой игре в кошки-мышки у разработчиков занимающихся автоматизацией и парсингом всегда будет работа ))
Не пробовали посмотреть в сторону инструментов автоматизации тестирования?
Есть например публичный репозиторий https://github.com/autotetst/simpleE2E/tree/main, в котором автоматизировать тесты можно просто на русском языке + css селекторы элемента (хорошие css селекторы в стабильном проекте меняются редко). Отлично работает в headless режиме
Или совсем из простого seleniumIDE, которое может устанавливаться как расширение браузера и записывать действия пользователя + воспроизводить