@Q_Q К сожалению через node.js и ws модуль не могу конектится к сокету т.к там каждый раз создаётся уникальная ссылка для нового пользователя, а объект который её создаёт определить для меня трудно сайт написан на react + obfurscator. Плюс к этому ещё и в самом ws внутри нужно каждые 5 минут отправлять токен аутентификации который генерирует какая-то анонимная функция либо вообще на сервере. Вроде ещё как можно сделать обёртку или сделать прокси чтобы свои обработчики повесить но это уже вообще темный лес для меня недостижимый. Поэтому пришлось использовать такой костыль. В Принципе все работает, ws команды я отправляю также через Ява скрипт и взаимодействую с этим сайтом быстро не используя веб интерфейс сайта вообще. Единственная проблема это видеть всю консоль не только в режиме отладчика. Я думал может в BAS есть какой-то свой способ о котором я не знаю, просто парсить ее в переменную бесконечно каждый раз обращаясь к ней и записывая последнее действие по умолчанию
Разные циклы используют одну переменную [[CYCLE_INDEX]]
-
Скрипт просматривает моих читателей в твиттере, находит тех, кого не читаю и нажимает кнопку "Читать". Такой алгоритм нормально работает. Когда добавляю дополнительное условие проверки (сверка со списком), возникает конфликт.

Первый цикл использует переменную CYCLE_INDEX.
Второй цикл, который сверяет со списком, тоже накручивает переменную CYCLE_INDEX
Когда доходит очередь до выполнения Двигать Мышь И Кликнуть На Элемент , скрипт зависает.
При выполнении первого цикла CYCLE_INDEX имеет значение 2,3,5
После выполнения второго цикла значение CYCLE_INDEX увеличивается на количество строк в списке и получается 45...52... и так далее.
Вопрос: как назначить для команды Foreach отдельную переменную?
Пробовал CYCLE_INDEX переименовывать в CYCLE_INDEX2, но так программа останавливается с сообщением об ошибке.
Или как еще можно организовать работу вложенных циклов?
Вот скрип на всякий случай
0_1483047520949_Twi-test-02.xml -
Поздравляю всех с наступившим 2017 годом!

А у меня новые вопросы в Новом году. Нужно просматривать сообщения по порядку. В каждом сообщении взять название аккаунта, сверить со списком, при положительном ответе кликнуть на сердечко.
Все сообщение помещено в родительский контейнер слой (div) с селектором:
div > div.contentвыделенный на рисунке красным цветом.
Внутри находится слой
div > div.content > div.stream-item-header > aс названием аккаунта (зеленый на рисунке)
Так же есть отдельный слой с сердечком (синий на рисунке)
div > div.content > div.stream-item-footer > div.ProfileTweet-actionList.js-actions >по которому нужно кликать.
Команда Начать цикл привязывается к слою div > div.content, внутри которого находятся все остальные.
Команда Получить Код Элемента :
[[FOR_EACH_CSS >]]<[[CYCLE_INDEX]]>будет брать код всего родительского контейнера (более 300 строчек кода и много килобайт)
Чтобы выбрать для обработки более узкую область, пробовал Получить Код Элемента указывать так:
[[FOR_EACH_CSS > div.stream-item-header > a]]<[[CYCLE_INDEX]]>и так:
[[[[FOR_EACH_CSS]] > div.stream-item-header > a]]<[[CYCLE_INDEX]]>и так:
([[FOR_EACH_CSS]] > div.stream-item-header > a)<[[CYCLE_INDEX]]>Не работает никак.
Я делаю синтаксическую ошибку, не правильно пишу команду, или такая команда в принципе не может работать?
-
@servasw45 Вот пример как я беру "n"-ый элемент в поле с типом Expression
'#search_more_results > div:nth-of-type(' + VAR_CUR_INDEX + ') .labeled.name > a';
Для поля с типом String, будет выглядеть примерно так:
#search_more_results > div:nth-of-type([[CUR_INDEX]]) .labeled.name > aТут конечно если ты шаришь в селекторах css.
VAR_CUR_INDEX это переменная [[CUR_INDEX]], я её использую в самом внутреннем цикле.Подробнее о css селекторе
тут - http://htmlbook.ru/css/nth-of-typeИ еще, лично у меня в работе с динамическим контентом, к примеру вк стена с автоподгружением элементов, FOR_EACH_CSS работает ровным счетом "на 1 итерацию", так что обходился без этого(надеюсь у тебя все ок с этим)
-
Когда доходит очередь до выполнения Двигать Мышь И Кликнуть На Элемент , скрипт зависает.
Да, есть такой баг, при выходе из внутреннего цикла, CYCLE_INDEX не содержит значение для внешнего цикла. Это будет исправлено. Пока можно воспользоваться тем, что значение CYCLE_INDEX вначале работы цикла всегда правильное и сохранить его в отдельную переменную.
-
@servasw45 Селектор равный
селектор1 селектор2(между ними пробел) будет искать селектор2 содержащийся внутри селектор1.Например, если твитт ищется по
селектор1, а ник по.username, то искать ник создавший конкретный твитт можно поселектор1 .usernameтакая запись
[[FOR_EACH_CSS]] .username<[[CYCLE_INDEX]]>значит ник внутри твитта с номером CYCLE_INDEX
Пример проекта
0_1483531961641_twitterforeach.xml -
@jurassik said in Разные циклы используют одну переменную [[CYCLE_INDEX]]:
на сегодня (спустя год этому топику) опять столкнулся с необходимостью пересохранять переменные CYCLE_INDEX во вложенных циклах, думал, что ситуация исправлена. Или я чего-то недосмотрел?
причем ситуация та же и с FOR_EACH_CSS
долго не мог понять почему нарушается видимость элементов, а оказалось, что теряются и нужно пересохранять обе переменные
решил вложенные циклы завернуть в функции c сохранением на входе и восстановлением этих имен на выходе
п.с. честно говоря так проблему и не решил пока что. С момента появления вложенных циклов по "всем элементам" цикл больше не работает. Переменные уже сохраняются, но не смотря на их значения он просто долбит в первый элемент меню.
Придется переделать на собственную логику обхода элементовДОЛГО МУДОХАЛСЯ, НО РЕШИЛ ПРОБЛЕМУ, ОКАЗАЛОСЬ:
- Что на переменную CYCLE_INDEX так же влияет вложенный цикл (в том числе во вложенных функциях) WHILE(УСЛОВИЕ)...
- В циклах по элементам есть еще одна переменная
VAR_"ELEMENT_LENGTH" (к ней нет доступа через переменные обычным способом[[ELEMENT_LENGTH]], решил через expression)
РЕЗЮМЕ:
Добавил обертывание таких циклов сохранением-восстановлением
VAR_FOR_EACH_CSS,
VAR_CYCLE_INDEX,
VAR_ELEMENT_LENGTH,
и, где это было возможно, применил другие методы.