[BrowserActionEmulation] - модуль для выполнения различных действий в браузере

Делитесь модулями
  • Спасибо за модуль, отличная задумка.

    Только что попробовал на версии 26.5.1. Действие Двигать мышь и ввести текст в поле не двигает мышь, текст вводится, но эмулирует просто клик по полю без движения.

    bandicam 2024-02-01 11-09-20-667.mp4

  • @FastSpace

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

  • ожидатель селекторов добавить бы)

  • @liberator да, там надо переделать действие проверить существование, добавить несколько новых методов проверки и добавь 2 новых действия проверить существование одного элемента и проверить существование нескольких элементов.

  • Сыроват модуль, если честно не понял стандартные действия как то по другому реализованы ? я про вот это утверждение 2 новых вида API BAS (BAS_HIDE и BAS_SAFE)

    Не работает с такими конструкциями клик

    XPATH> //li[@data-value="en-US"] | //li[@data-value="en"]

    При выборе языка на форме логина гугла. Стандартный действие отлично находит.

  • @Nicolas Точно также работают, я про те новые которые я добавил они также используют BAS_HIDE и BAS_SAFE

    Про клик я знаю, завтра переделаю его c новыми фичами еще. Он плохо работает шас.
    Все в телегу мне писали про это клик.

  • @FastSpace А можно изменить действие Двигать мышь и ввести текст в поле так, чтобы после клика на поле до ввода текста курсор сдвигался случайным образом вправо/влево/вверх/вниз? Типа юзер кликнул на поле для ввода и слегка отодвинул курсор, чтоб не мешал. Или слишком геморрно будет?

  • @Inwnew Можно рандомно такое добавить

  • @FastSpace то, что нужно, заранее спасибо )

  • Вышла версия 1.1

    • Изменено поведение действия "Scroll", теперь модуль проверит что если перед прокруткой курсор мыши находился не в совсем положенном месте там где нужно делать прокрутку, например в отрицательных координатах или в углу текущей видимой области браузера. В таком случае сначала будет выполнено действие двигать мышь в случайные координаты и только потом начнётся прокрутка.

    • В блок "Выполнить эмуляцию одного действия" добавлено новое поведение - история назад. Во время выполнение этого действия курсор мыши передвинеться в левый верхний угол браузера, там где и должна находиться кнопка "назад".

    • В действие "Двигать мышь и ввести текст в поле" немного переделаны по текстому полю, теперь такой клик произойдет на случайно 2 - 20%, а не 15% от левого края.

    • Исправил все баги в действии "Двигать мышь и кликнуть на элемент" о которых мне написали и которые я смог повторить.

    • Новая возможность: теперь действие "Двигать мышь и кликнуть элемент" проверит что элемент находиться в углу текущей видимой области браузера (10% отступ снизу и 10% сверху), тогда он сделает прокрутку так чтобы элемент не находился в углу 3 видами способов случайно:

    1. небольшая прокрутка, тогда элемент слегка поднимется ближе к видимой области экрана,
    2. средняя прокрутка - элемент поднимется к центру видимой области браузера и
    3. большая прокрутка , элемент поднимется к верхней части видимой области браузера.
      Люди не кликают по углам браузера.

    Вот скриншот о чем говорю:

    Однако тут возникает проблема, что элемент может быть зафиксирован на странице и нужно было сделать так что если он зафиксирован то не делать таких прокруток, модуль в таком случае дополнительно проверит позицию элемента через стили и если он равен "static", только тогда произойдет прокрутка, но бывают ситуации что static не всегда гарантирует что элемент в потоке скролиться, мои тесты показали что у 90% элементов такой проблемы не возникает, а даже если и возникнет ничего странного что модуль сделает лишний раз прокрутку, это намного лучше чем делать клики на элементы по углам браузера.

  • @FastSpace Спасибо большое за твои старания, очень приятно видеть как развивается бас с помощью модулей и комьюнити

  • Версия 1.2

    • Добавил фичу о которой упоминал @Inwnew
    • Много фиксов багов в действиях "Двигать мышь и кликнуть на элемент" и "Двигать мышь и ввести текст поле"
    • Много текстовых правок интерфейса и описаний действий модуля.
    • Фиксы некоторых действий для положения прокрутки X

    Известные проблемы:

    • Если делать клик внутри элемента у которая есть своя внутренняя прокрутка на странице (вправо или вниз), не зависимо от всей прокрутки страницы, модуль нормально не кликнет не элемент если он не виден. В стандартном действии BAS решение такой проблемы тоже не очень реализовано в виде мгновенного портала к элементу с замиранием мыши. Особенно это заметно на мобильных отпечатках из-за малого разрешения экрана .Такое поведение нужно будет полностью переделать, но сделать это не просто и займет много времени, когда займусь неизвестно пока.
  • Перезалил 1.2 версию, несколько фиксов для двигать мышь в случайные координаты, в формуле была ошибка небольшая.

  • @FastSpace а возможно сделать действие, которое будет выбирать рандомное значение из комбобокса ( как в discord или в tiktok). будет очень удобно, если так сделаете

  • @Lawsd said in [BrowserActionEmulation] - модуль для выполнения различных действий в браузере:

    @FastSpace а возможно сделать действие, которое будет выбирать рандомное значение из комбобокса ( как в discord или в tiktok). будет очень удобно, если так сделаете

    Такое действие уже есть в BAS, но оно работает не совсем так мне это бы хотелось, выше написал уже что клики по элементам со своим скролом надо переделать с нуля.

    P.S. Сделал мини фикс и перезалил, исправил определение полей в действии Двигать мышь и ввести текст.

  • @Nicolas said in [BrowserActionEmulation] - модуль для выполнения различных действий в браузере:

    XPATH> //li[@data-value="en-US"] | //li[@data-value="en"]

    Попробуй так:

    //li[@data-value="en-US" or @data-value="en"]
    
  • @sergerdn Ты верно не понял, стандартное действие и с | прекрасно работает. Может Фаст уже и поправил.

  • @Nicolas Уже должно работать.
    Я в многопотоке кручу свой модуль, всё работает как я и хотел. Все возможные баги увидел и поправил.

  • @Nicolas said in [BrowserActionEmulation] - модуль для выполнения различных действий в браузере:

    @sergerdn Ты верно не понял, стандартное действие и с | прекрасно работает. Может Фаст уже и поправил.

    Я все правильно понял и предложил тоже самое, написанное по другому. Так как если есть баг, то, может быть, с другим написанием он обходится.