Умный ожидатель

Делитесь модулями
  • @Fox Спасибо, принято. Как будет время поправлю.

    Описание первых двух полей действия написаны капсом

    Не планировал добавлять английскую локализацию.

    Отсутствует описание для полей селекторов элементов

    Ну тут тогда на всех 20-ти придется прописывать :)

    Вместо кучи непонятных инпутов с текстом NULL лучше создать один, который принимает массив селекторов (ну или строку с разделителем)

    Я думал над этим, но тут есть несколько камней преткновения:

    1. Начинающие пользователи с трудом понимают, что такое переменная и куда тыкнуть кнопочку, а уж что такое массив и как его организовать больше чем это позволено сделать в стандартном действии "список" (3 возможных поля)... Тут как минимум уже необходимо знать основы js.
    2. Это не всегда самому сподручно. Если элементов много, то отдельно через js необходимо создавать массив. А это плюс еще один дополнительный кубик перед модулем в скрипте.
      Но с другой стороны, массив визуально выглядит минималистичнее. Пока не определился...

    Судя по коду модуля вы его создали из функции BAS.

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

    зачем выходить из цикла "while" меткой

    Я организовал вложенный цикл, просто при помощи одного break там не выйти.

    Можете приложить проект на основании которого создали модуль?

    Конечно. Вот он: modules v2.xml

  • Эту систему очень сложно понять. Я надеюсь, что придет объяснение на английском. Любое видео нужно. Я не мог добавить его в свое приложение: /

  • Спасибо. Удобный и хорошечный модуль.

  • @olegtut планируете какие-либо обновления модуля? Очень полезная штука

  • Делал для себя похожее, только без return
    Ждал 1 элемент
    Хорошо бы добавить время сна после нахождения элемента, но по умолчанию 0
    А вот "ДЕЙСТВИЯ ПРИ ОБНАРУЖЕНИИ ЭЛЕМЕНТА" я позаимствую)

  • @olegtut
    Попробовал модуль, интересная задумка, но не хватает некоторых функций, поэтому оказался для меня не полезным.

    1. Параметр "Таймаут" не работает. Задаешь сколько угодно секунд, он отрабатывает все равно 90 секунд.
    2. Так же не хватает функции эмуляции "Тач-событий", а не только мыши.
    3. Плюс как сказал @mansory333 было бы классно задавать паузу (или чтение) после нахождения элемента.
      Тогда один кубик решал бы почти все задачи. А то сейчас оформляя все через IF и For выглядит все некрасиво :(
  • @Antonz
    Планирую. Для себя уже сделал другую версию, но всё еще не найду время выкатить сюда :)

  • Обновил модуль до второй версии.

  • @olegtut Чёт так же и ставится 1.0 версия.
    Ссылку забыл мож обновить :)
    bffff306-f493-4136-ab65-6be7862a1799-image.png

  • @olegtut Если не сложно можете прикрепить обновленный проект?

  • @super84 @mansory333

    В шапке темы, откройте внизу спойлер Ver. 2.0

  • @spacerange Ёптить :)))
    Чёт реально, внизу то глянуть и забыл :)

  • @spacerange я про xml-проект модуля

  • @mansory333
    Да, могу. modules v3.xml
    Функция называется waiting_for_one_v2 . Скрипт часто использует js для определения объектов и некоторых условных операций с нативными функциями БАС. Если для образовательных целей, то могу, если непонятно будет, объяснить, какой блок за что отвечает.

  • Сегодня первый раз использовал модуль, очень помогает в ситуации когда селектор меняется в зависимости от
    определенной ситуации и приходится городить конструкции if exist-click, потом использовать метку для выхода из этой конструкции, чтобы случайно не сработал повторный клик, если и второй селектор совпадет. Данный модуль просто пушка, автору респект.

  • @serrgo said in Умный ожидатель:

    Сегодня первый раз использовал модуль, очень помогает в ситуации когда селектор меняется в зависимости от
    определенной ситуации и приходится городить конструкции if exist-click, потом использовать метку для выхода из этой конструкции, чтобы случайно не сработал повторный клик, если и второй селектор совпадет. Данный модуль просто пушка, автору респект.

    В таких случаях лучше использовать xpath, что бы создать универсальный селектор. Ведь xpath поддерживает логические операторы: селектор 1 || селектор 2 || селектор 3

    Если xpath слишком сложен, то можно использовать список селекторов и цикл с проверкой существования

  • @Fox В моей ситуации селекторы у одного элемента были разных типов(xpath который я сам составлял и css который я составлять не умею), плюс к этому данный модуль позволяет в одном действии организовать и проверку и действие с элементом. Так что мои рекомендации и респекты автору остаются в силе)

  • @olegtut Download: waitinger_2.zip , Where module v3.zip ?

  • @jobriwterr
    comming soon :)

  • Установил на BAS 26.7.1
    Вставил кубик и в поле Массив селекторов вставил ваш пример из шапки
    [[MY_LIST]] = [
    '>MATCH>element',
    '>XPATH>//*[@id="element"]'
    ];
    так же вставлял и свои селекторы. Постоянно кубик вызывает ошибку.
    SyntaxError: Parse error во время выполнения действия xxxxx

    Подскажите, пожалуйста, как исправить ошибку.