@Paradox рад что кто то пользуется )
Умный ожидатель
-
@olegtut Начну с мелких придирок
:D.- Название всех модулей BAS начинаются с заглавной буквы

- Название действия на английской локализации названо через нижнее подчёркивание "waiting_for_one"

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

- Отсутствует английское описание действия и его полей

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

- Описание действия нужно дополнить более подробными примерами использования этого действия (например с тем, как использовать итоговый объект)
Теперь к более серьёзным замечаниям:
- Действие без селекторов намертво зависает, а должно выдавать ошибку при попытке сохранить такое действие

-
Вместо кучи непонятных инпутов с текстом NULL лучше создать один, который принимает массив селекторов (ну или строку с разделителем)
-
Судя по коду модуля вы его создали из функции BAS. Можете приложить проект на основании которого создали модуль? Дело в том, что в коде есть не совсем понятные места, например зачем выходить из цикла "while" меткой?

-
Опцию "ДЕЙСТВИЯ ПРИ ОБНАРУЖЕНИИ ЭЛЕМЕНТА" лучше убрать в принципе, так как действие призвано ожидать элемент, а не взаимодействовать с ним. Для удобства лучше вывести селектор, на котором сработало действие в переменную результата выполнения.
-
Если же решишь оставить опцию "ДЕЙСТВИЯ ПРИ ОБНАРУЖЕНИИ ЭЛЕМЕНТА", то лучше использовать выпадающий список с вариантами действия, чем выбор цифрами. В существующих модулях можно подсмотреть пример использования
-
@Fox Спасибо, принято. Как будет время поправлю.
Описание первых двух полей действия написаны капсом
Не планировал добавлять английскую локализацию.
Отсутствует описание для полей селекторов элементов
Ну тут тогда на всех 20-ти придется прописывать :)
Вместо кучи непонятных инпутов с текстом NULL лучше создать один, который принимает массив селекторов (ну или строку с разделителем)
Я думал над этим, но тут есть несколько камней преткновения:
- Начинающие пользователи с трудом понимают, что такое переменная и куда тыкнуть кнопочку, а уж что такое массив и как его организовать больше чем это позволено сделать в стандартном действии "список" (3 возможных поля)... Тут как минимум уже необходимо знать основы js.
- Это не всегда самому сподручно. Если элементов много, то отдельно через js необходимо создавать массив. А это плюс еще один дополнительный кубик перед модулем в скрипте.
Но с другой стороны, массив визуально выглядит минималистичнее. Пока не определился...
Судя по коду модуля вы его создали из функции BAS.
Так и есть. Я обнаружил, что стандартными действиями реализовать задуманную логику невозможно, либо громоздко, поэтому юзал еще и функции БАС.
зачем выходить из цикла "while" меткой
Я организовал вложенный цикл, просто при помощи одного break там не выйти.
Можете приложить проект на основании которого создали модуль?
Конечно. Вот он: modules v2.xml
-
Делал для себя похожее, только без return
Ждал 1 элемент
Хорошо бы добавить время сна после нахождения элемента, но по умолчанию 0
А вот "ДЕЙСТВИЯ ПРИ ОБНАРУЖЕНИИ ЭЛЕМЕНТА" я позаимствую) -
@olegtut
Попробовал модуль, интересная задумка, но не хватает некоторых функций, поэтому оказался для меня не полезным.- Параметр "Таймаут" не работает. Задаешь сколько угодно секунд, он отрабатывает все равно 90 секунд.
- Так же не хватает функции эмуляции "Тач-событий", а не только мыши.
- Плюс как сказал @mansory333 было бы классно задавать паузу (или чтение) после нахождения элемента.
Тогда один кубик решал бы почти все задачи. А то сейчас оформляя все через IF и For выглядит все некрасиво :(
-
@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 который я составлять не умею), плюс к этому данный модуль позволяет в одном действии организовать и проверку и действие с элементом. Так что мои рекомендации и респекты автору остаются в силе)
