Логика при записи скрипта.
-
@Turutur said in Логика при записи скрипта.:
Ладно здесь все понятно - делаем что можем - возникла далее такая ситуация - так как выдача идет постраничная - то соответственно в цикл включаем клик по кнопке для перехода на следующую страницу и парсинг - задача получить данные со всех страниц выдачи по запросу - НО на этом скрипт не должен остановиться, а должно произойти следующее - если клик по кнопке следующей страницы не произведен, так как страницы закончились - то выполняем следующее действие - обработку данных - я реально не догоняю как использовать логику - как то очень сложно реализована для понимания!
Есть действие "Игнорировать Ошибки", софт продолжит работу, если возникнет исключение, к тому же у вас будет возможность его обработать использовав переменные WAS_ERROR и LAST_ERROR. http://wiki.bablosoft.com/doku.php?id=ru:how_to_catch_errors
Вроде все просто. Если знаете способ проще - скажите, я попробую его реализовать.И еще пожалуйста объясните на примере чем файл отличается от списка?? И как и в каком случае это используется и почему в списке только 3 значения?
Список - это набор данных, строки из файла, или найденные результаты на странице. С помощью действия "добавить элемент" можно сделать больше чем 3 элемента. Также списки можно записать/сохранить в файл одним действием.
И еще пожалуйста, очень прошу - сделайте уже какой то способ, чтобы можно было просматривать содержимое переменных и листов.
Этот функционал уже есть 2 последних версии. https://www.youtube.com/watch?v=UBgpWayk0SU
Да кстати - когда будет рабочая версия программы с действующей прокруткой к элементу и вообще прокруткой - Вы фикс мне скинули - но он для внешних кнопок - внутренний функционал все равно не работает.
Прокрутка работает нормально. Но на сайте hideme.ru разработчики переопределили системную функцию scrollTo именно из-за этого БАС не работал с этим сайтом. Сам баг я исправил несколько дней назад.
http://bablosoft.com/distr/BrowserAutomationStudioDevelopment/15.1.0/BrowserAutomationStudioInstallAllInOne.exe
-
Спасибо - большое за исчерпывающие ответы!
-
@support said in Логика при записи скрипта.:
Список - это набор данных, строки из файла, или найденные результаты на странице. С помощью действия "добавить элемент" можно сделать больше чем 3 элемента. Также списки можно записать/сохранить в файл одним действием.
Очень прошу - сделайте пожалуйста нормальный пример со списком - как туда добавить больше трех значений - ?
Я делал так - создаю список в переменную NEW_LIST - затем получаю текст в переменную - PROXY_ID - затем добавить элемент в список - выбираю список - выбираю добавляемую переменную - и все это обернуто в цикл! - в результате только одно значение IP в списке??? Как использовать список, как буфер обмена - для сохранения массива данных и дальнейшей обработки - пожалуйста на примере
-
@Turutur said in Логика при записи скрипта.:
и все это обернуто в цикл!
Нужно вынести действие создать список за цикл. В цикле должно остаться только добавление в список, но не его создание.
-
@support said in Логика при записи скрипта.:
Нужно вынести действие создать список за цикл. В цикле должно остаться только добавление в список, но не его создание.
Спасибо все получилось!
-
Не срабатывает логика - "Игнорировать ошибки" - ситуация следующая - внизу страницы есть кнопки для перехода между страницами выдачи - в виде цифры и стрелки вправо - делаю следующее - прокручиваю к элементу стрелки вправо - навести и нажать на класс правой стрелки(дождаться полной загрузки страницы) - и следующий блок "игнорировать ошибки" - так вот - например на выдаче 2 е страницы - нажатие стоит в цикле и блок игнора ошибки тоже - при первом витке цикла все срабатывает нормально - так как ошибки при нажатии на правую стрелку нет - но при переходе на вторую страницу - стрелка вправо исчезает - действие невыполняется очень долго - а потом скрипт останавливается и выдается сообщение, что не удалось дождаться цcc правой стрелки - что не так делаю? ведь по сути - зачем ждать появление элемента - если действие идет на клик, а страница загружена полностью. Как быть?
-
@Turutur said in Логика при записи скрипта.:
и следующий блок "игнорировать ошибки"
Действия, в которых игнорируются ошибки должны внутри "Игнорировать ошибки", а не перед ним.
Как быть?
Проверять существует ли стрелка вправо, и если она существует - завершать цикл.
-
@support said in Логика при записи скрипта.:
Проверять существует ли стрелка вправо, и если она существует - завершать цикл.
Логика программы меня реально в тупик загоняет - не могу срастить - админ - если не сложно сделай туториал по логике используемой в циклах - у меня просто платы в голове уже перегорели( - вот проект - в чем ошибка? - почему блок IF и не выполняется? - вернее игнорируются действия внутри блока: 0_1471607938317_proxi_parse_hideme.xml
Иногда - вернее всегда не понимаю - как использовать условия как в проекте для примера - то есть - как завязать цикл, да так, чтобы спарсить первую страницу, затем вторую, затем третью, а если третей нет - завершить цикл по парсу и начать обработку с записью d файл. Пожалуйста давйте этот момент разберем - уже который день голову ломаю - перебрал все варианты с логикой - не пойму правильно ли я начинаю цикл без элемента, а просто по переменной циклиндекс и как завершить цикл, если условия не выполнились?
-
если не сложно сделай туториал по логике используемой в циклах
Пожалуйста:
http://wiki.bablosoft.com/doku.php?id=ru:is_it_possible_to_use_loops
http://wiki.bablosoft.com/doku.php?id=ru:is_it_possible_to_execute_certain_action_depending_on_condition_if_statementЯ не вижу блока if в вашем проекте, поэтому не могу ответить на ваш вопрос.
Foreach должен получать на вход переменную типа список. CYCLE_INDEX - это номер. Так что работать не будет. Сделайте просто бесконечный цикл(от 1 до 10000) и завершайте его, когда нету кнопки перехода на следующую страницу.
Так же действие "Игнорировать ошибки" не содержит внутри себя ничего, поэтому не имеет смысла.
-
Я сильно извиняюсь не тот проект скинул - просто очень много чего пробывал - ниче не срабатывает - вот проект - где в цикле используются значения логики 0_1471692349011_proxi_parse_hideme - копия.xml - они так же не срабатывают - как и сама логика
-
@support said in Логика при записи скрипта.:
Сделайте просто бесконечный цикл(от 1 до 10000) и завершайте его, когда нету кнопки перехода на следующую страницу.
Это как? - как это реализовать то? Допустим я проверяю наличие элемента - если он есть переменная получает результат true - и что с этого как дальше поступить по чему вообще цикл начинать = как его останавливать - как работать с условиями - вы программист - Вам может это очевидно - я вроде не даун - но третий день пытаюсь разобраться в логике - по сути - логика - это цепочка последовательных умозаключений - в БАСе они отсутствуют - последовательные умозаключения - - нормально пожалуйста покажите как реализовать логику - по русски - на русскоязычном проекте пожалуйста!!!!
-
@Turutur Отличный проект!
Чтобы все заработало нужно заменить условие в цикле с
[[IS_EXISTS]] == "true"
на[[IS_EXISTS]]
и обновлять переменную IS_EXISTS в конце цикла.Вот так:
-
@support said in Логика при записи скрипта.:
Отличный проект!
Чтобы все заработало нужно заменить условие в цикле с
[[IS_EXISTS]] == "true" на [[IS_EXISTS]]
и обновлять переменную IS_EXISTS в конце цикла.Да это не у меня проект отличный - это у Вас задумка проги офигенная, только пока не получается ее оседлать - я делал то, что Вы прописали и не раз и видоизменял ничего не помогает - логика игнорируется - нужно как то проще ее реализовывать для понимания - или тайтлы подсказки к элементам сделать по условиям. Щс вот что происходит - короче то же самое что и было:
-
@Turutur У меня работает отлично. Скорее всего отредактировали действие вот этой кнопкой, а она меняет только название.
-
)) Спасибо - я уже который раз на этом попадаюсь) Спасибо! Все заработало
-
@support пожалуйста объясните - как сделать следующее условие - например - есть входные настройки - ресурсы - от их наличия зависит конечная ссылка для загрузки - она собирается исходя их наличия или отсутствия данных в ресурсах - делал так
if - проверяю наличие данных [[variable]]!='' - внутри блока присваиваю переменную и значение - и блок с успехом выполняется, если есть водные данные в ресурсе, но вся загвоздка в том - как сделать обратную сторону - если данных нет.
Что такое блок else - и почему он не включается, если не был задан в блоке if изначально - а устанавливается после - при повторном открытии блока для редактирования??? То есть как всегда нужно элементарное решение - если данные есть присваиваю значение переменной - а если нет - тоже присваиваю значение но пустое...
а конце работы скрипта идет сбор ссылки для перехода в формате http://site.zone/[[var1]][[var1]]
-
This post is deleted!
-
как сделать обратную сторону - если данных нет.
if [[variable]] != "" Данные есть
if [[variable]] == "" Данных нет
или
Что такое блок else - и почему он не включается.
Действия в блоке else выполняются только в если условие не выполнено.
Чтобы добавить/удалить else нужно пересоздать действие. Небольшой недочет.
-
@support - при работе с логикой постоянно сталкиваюсь с одной и той же проблемой - как реализовать "обратную логику" - в данный момент логика реализована так, что если условие выполняется то выполняются действия внутри блока if, а как реализовать, чтобы действия выполнялись внутри блока если условие НЕ ВЫПОЛНЯЕТСЯ!?
Пришел к такому алгоритму так (пример) - проверяю существование элемента в перемнную is_exists - if [[is_exists]]->внутри блока проверяю существование в перменную 1 -> опять if[[var1]] там же еще 2 проверки и все три логики в цикле - и получается не могу зациклить - а вот если бы было наоборот - было бы логичнее - можно было бы вкладывать проверки друг в друга, а в случае если они одна из них не сработала - цикл продолжался. Как можно задать условие неравенства??? Типа Если переменная НЕ РАВНА - ТО ->
-
@Turutur Любая логика в том числе отрицание может быть реализована с помощью конструктора.
Типа Если переменная НЕ РАВНА - ТО ->
Выше уже отвечал
if [[variable]] != "" Данные есть
if [[variable]] == "" Данных нет