Аналог BadEnd

Igorii

Client
Регистрация
21.02.2015
Сообщения
369
Благодарностей
292
Баллы
63
Друзья, помогите со снипетом, (если вообще, такой возможен). Делаю шаблон, типа гулялки, по большому порталу, столкнулся с тем, что ошибка может возникнуть в любом месте, типа непрогруз элемента, новое всплывающее окно и т.п. Отловить все эти моменты проблематично, а вести с каждого кубика выход по красной, большая паутина получается. Возможно ли сделать аналог BadEnd, но что бы при непредвиденной ошибке, шаблон не завершался, а возвращался на определённый кубик и продолжал работу?
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Друзья, помогите со снипетом, (если вообще, такой возможен). Делаю шаблон, типа гулялки, по большому порталу, столкнулся с тем, что ошибка может возникнуть в любом месте, типа непрогруз элемента, новое всплывающее окно и т.п. Отловить все эти моменты проблематично, а вести с каждого кубика выход по красной, большая паутина получается. Возможно ли сделать аналог BadEnd, но что бы при непредвиденной ошибке, шаблон не завершался, а возвращался на определённый кубик и продолжал работу?
В зеннопостере такого не реализовано и это похоже на зацикливание, что зенка не очень то и любит, в результате можно получить краш. Поэтому данный вопрос больше уместен наверное в теме предложение , где создать тему на добавление данной функции, но что-то мне подсказывает, что такое будет не реализовано, так как зацикливание вызывает больше проблем, чем стабильности, если даже и добавят данное, то вы представьте, сколько потом будет жалоб на данную функцию, что с ней проблем много.
 
  • Спасибо
Реакции: Igorii

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Такого нет и не будет.
Выше правильно написали, это очень плохая идея любую ошибку заводить обратно на кубик где она возникла. Если элемент не найден , допустим за 35 секунд, то это не поможет ему появится. Тут как раз надо по красной ветке выходит на какую-то альтернативную логику. например на счетчик и перезагрузку страницы. Никакой паутины лишней не будет, если разбивать шаблон на логические блоки и в каждом таком блоке предусматривать свою обработку ошибок. Конечно если с каждого кубика вести линию на один кубик (типа обработка ошибки), а потом через свитч прокидывать обратно, то это жесть. но это совсем не правильное использование графических схем. Если обработка универсальная, то лучше сделать подпроект и вызывать его по красной линии. Возвращатся будет хотя бы в тоже место откуда и вызвали, а отсюда можно либо на начало логического блока вести, либо уже на BADEND, если обработчик ошибки покажет что все, приплыли к криту.
К тому же ведь можно просто поставить "не обязательное" и не будет ошибки не найденного элемента :-)
 
  • Спасибо
Реакции: Igorii

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 943
Благодарностей
4 340
Баллы
113
Возможно ли сделать аналог BadEnd, но что бы при непредвиденной ошибке, шаблон не завершался, а возвращался на определённый кубик и продолжал работу?
Так возвращайте в нужное место после BadEnd, кто вам мешает?
Только добавьте переменную - счетчик ошибок и проверяйте её на максимальное значение.
 
  • Спасибо
Реакции: Igorii

Igorii

Client
Регистрация
21.02.2015
Сообщения
369
Благодарностей
292
Баллы
63
Так возвращайте в нужное место после BadEnd, кто вам мешает?
Да, это был бы вариант, но BadEnd срабатывает только один раз, несколько раз его невозможно использовать.

Такого нет и не будет.
Выше правильно написали, это очень плохая идея любую ошибку заводить обратно на кубик где она возникла.
Вы не правильно меня поняли, я не просил добавить это в функционал, просил снипет. И обратно, на тот же кубик, конечно нет смысла заводить ошибку, вывести нужно на другой кубик в начало проекта, например на паузу, а дальше шаб продолжит работать по заданному алгоритму и такая ошибка может уже и не возникнуть. Да вариантов решить этот момент много, но, в моём случае, самым изящным был бы многоразовый аналог BadEnd.

По поводу зацикливаний, если бездумно сделать, то конечно они возможны, но решается счётчиком ошибок, как и сказал Astraport
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 444
Благодарностей
1 287
Баллы
113
Да, это был бы вариант, но BadEnd срабатывает только один раз, несколько раз его невозможно использовать.


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

По поводу зацикливаний, если бездумно сделать, то конечно они возможны, но решается счётчиком ошибок, как и сказал Astraport
Тут без стороннего dll не обойтись, если конечно вообще это разрешено или возможно. Чисто снипетом не отделаетесь.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
По идее, встроенными инструментами зеннопостера можно собрать такой сниппет(слепок состояния переменных, отработавшие кубики и прочее-прочее, чтобы запускать поток снова фактически с места предыдущего обрыва), я бы даже взялся на досуге. Только, вот стоит ли оно того, чтобы городить такие костыли? Уж лучше и правильнее будет корректно продумать логику и обработку возможных ошибок.
Задумался над задачей и она мне показалась интересной своими трудностями, но ее реализация бессмысленна, да и досуга нет :(, так что, я, все-таки, пас.
Совет: Учитесь выстраивать логику шаблона в рамках не только блока кубиков, а всего проекта и остерегайтесь костылей.
 
  • Спасибо
Реакции: Igorii

Igorii

Client
Регистрация
21.02.2015
Сообщения
369
Благодарностей
292
Баллы
63
По идее, встроенными инструментами зеннопостера можно собрать такой сниппет(слепок состояния переменных, отработавшие кубики и прочее-прочее, чтобы запускать поток снова фактически с места предыдущего обрыва), я бы даже взялся на досуге. Только, вот стоит ли оно того, чтобы городить такие костыли? Уж лучше и правильнее будет корректно продумать логику и обработку возможных ошибок.
Задумался над задачей и она мне показалась интересной своими трудностями, но ее реализация бессмысленна, да и досуга нет :(, так что, я, все-таки, пас.
Совет: Учитесь выстраивать логику шаблона в рамках не только блока кубиков, а всего проекта и остерегайтесь костылей.
Нет, если это сложно, то оно того не стоит). Я же говорю, что решить эту задачу другими методами не так трудно, просто именно в данном проекте, это был бы наиболее рациональный способ. Ну, а раз это сложно, то и не нужно. Спасибо!)
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Кстати насчет состояния.... была у меня задача одна, надо было сделать много действий на одном аккаунте, но надо было уложится в 8 минут. если не укладывался то надо было делать перерыв не менее 15 минут. так вот при ошибках тоже можно это использовать. разбивается проект на логические блоки и после каждого пройденного блока ставится аккаунту метка. если вылетел, то при старте по меткам можно по отдельной логической ветке шустро дойти до нужного блока в любое время. я даже таблицу не заводил, просто делал запись с списке вида [email protected]:1:1 , сплитовал и сразу понятно что идти к 3-й фазе.
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
742
Баллы
113
У каждого кубика есть свое id ошибки, выглядят так ff84ce0a-5284-4c54-959c-3646a113d52c . Уходишь на счетчик, чтоб не создать бесконечный цикл, а потом на свитч, свитчи большие не делай, штук по 10, если там не нашел эту ошибку, уходишь на другой свитч по дефаулт, как то так строить логику.
 
  • Спасибо
Реакции: Igorii

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)