Автоматизация действий браузера

Периодически работаю с автоматизацией работы в браузере (например, чтобы каждый день бронировать себе место в опенспейсе офиса) и каждый раз приходится искать новую программулину, потому что ➡

  1. Она работала только на Windows.... а как на маке...((
  2. Теперь она только платная......🤔
  3. Нужно держать компуктер включенным (особенно если винда), а хотелось бы в облаке...

В большинстве из них нет адекватного редактора действий — это когда ты серфишь в окне браузера, а программа записывает за тобой действия.

Либо его вообще нет, либо он работает очень странно, и приходится открывать браузер и самостоятельно копипастить туда — сюда XPath элементов.

Абсолютно случайно подумал об этом и вспомнил, что мне всегда интересно было разобрать, как оно работает, и собрать свой конструктор для автоматизации действий в браузере...

Собственно, представляю свою реализацию 🥸

Демо версия

Я решил пойти простым путём, не забираться в .NET, городить свой браузер, конструктор поверх него и просто сделать всё на вебе.

Страница загружается через CURL, после чего отправляется в iframe, и на него добавляется скрипт для обработки курсора и его действий.

P.S. Это самая первая демо-версия. Позже я перешёл на работу с headless-браузером, и в ходе тестов выяснилось, что всё ломается на всплывающих элементах (потому что при передаче HTML iframe не отображает выполненный в браузере JavaScript — т.е. различные всплывающие окошки и т.д.).

Поэтому переделал все на работу через скриншоты из браузера и разметку элементов относительно их координат и размеров, прямо поверх скриншота

Чуть позже покажу новую версию и то, как все получилось 😁

А в телеграме материалы выходят чуточку раньше

5 комментариев

Сейчас примерно везде антиботы стоят, они очень ограничивают автоматизацию работы в браузере. И если даже сейчас получилось их обойти, послезавтра они будут работать по новым правилам и опять нужно учиться обходить

1

Смотря какой юзеркейс рассматривать. Одно дело — бронировать стол в офисе, а другое — парсить товары в ИМ

Но и в том и другом случае — это можно решить :)

сейчас получилось их обойти, послезавтра они будут работать по новым правилам и опять нужно учиться обходитьИ это хорошо, благодаря этой игре в кошки-мышки у разработчиков занимающихся автоматизацией и парсингом всегда будет работа ))

Не пробовали посмотреть в сторону инструментов автоматизации тестирования?
Есть например публичный репозиторий https://github.com/autotetst/simpleE2E/tree/main, в котором автоматизировать тесты можно просто на русском языке + css селекторы элемента (хорошие css селекторы в стабильном проекте меняются редко). Отлично работает в headless режиме

Или совсем из простого seleniumIDE, которое может устанавливаться как расширение браузера и записывать действия пользователя + воспроизводить