Добавить в кубики действий параметр таймаут.

  • Автор темы Автор темы Mikhail B.
  • Дата начала Дата начала

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 449
Реакции
5 478
Баллы
113
Есть некоторая путаница с "Таймаут" и "Ждать элемент не более".

Пример:
я открываю страницу с таймаутом 15 сек, она не прогрузилась и переходит к следующему действию, например клику в поле, этот клик ждет опять 15 сек и только потом, уходит по ошибке, если от него идет красная стрелка (игнорируя при этом настройку "Ждать элемент более")

Так вот:
В будущем планируют это исправить, и "Ждать элемент не более" будет работать.
Если он будет работать, то получается мы будем ждать таймаут + ждать элемент не более. Предположим 15 и 10 секунд. Всего 25.

Хотя лично мне, хотелось бы использовать настройку "Ждать элемент не более" только в том случае, когда страница загружена. А если она не загружена, то и ждать нечего. По моему не логично растягивать ожидание на два раза.

Получается путаница.

Давайте просто сделаем возможность фиксированного выбора таймаута для каждого отдельного кубика. Ну конечно же с возможностью сохранения значения по умолчанию.

2020-04-07_203054.jpg

Многие скажут, есть же кубик таймаут. Его и ставь. Да конечно можно поставить, но вспомните когда вы ставили паузы между действиями и небыло настройки "Подолжать перед выполнением". Облегчила она вам жизнь? Конечно, на много стало удобнее. И тут ситуация похожая, идем постепенно к совершенству. В прочем решать вам, кнопка ниже)
 
Это нонсенс. Сам кубик таймаут, ждет загрузки страницы.
 
я открываю страницу с таймаутом 15 сек, она не прогрузилась
Страница совсем не загрузилась, там about:blank или только какой-то конкретный элемент(ы)?

Давайте просто сделаем возможность фиксированного выбора таймаута для каждого отдельного кубика.
Не очень понятно зачем добавлять в каждый кубик опцию таймаута, если проблема только с "переходом на страницу".
 
Последнее редактирование:
Страница совсем не загрузилась, там about:blank или только какой-то конкретный элементы(ы)?
Просто 20-50% пакетов потеряно и страница ушла в бесконечную загрузку, для этого я делаю таймаут 15 сек. Соотвественно после выхода из таймаута идет проверка элемента на странице, что бы подтвердить не корректную загрузку. Но вместо этого, проверка уходит опять на таймаут и по итогу вместо нужных мне 15-20 сек, я жду 30-35. Вот почему я создал тему, не совсем мне понятно как реагировать на такие ситуации. Пока ZennoPoster не способен работать с мобильными проксями из коробки, мне приходится оптимизировать шаблоны, сейчас выросла нагрузка на сеть и и вопросы в стабильной работе при таких условиях стоят особо остро.

Какой выход я нашел сейчас. Кубик таймаут 5 сек перед проверкой на элемент, но самое смешное, что сам кубик таймаут тоже ждет 5 сек.

Ну и соответственно по красной ветке кубика проверки идет просто перезапуск страницы, а по зеленой возвращаются стандартные 15 секунд таймаута.

Возможно не для всех такие логические цепочки актуальны, но мне важны эти детали, 5 сек умножим на 100 выполнений, это 8 минут. Там 5 сек, тут 5 сек и мы теряем время и соответственно работа менее продуктивна.

Не очень понятно зачем добавлять в каждый кубик опцию таймаута, если на проблема только с "переходом на страницу".
Это не проблема, это следствие. Только не давно был случай когда к серверам зенолаба были проблемы с доступом, нагрузки на сети не редкость в наше время и лично я оптимизирую свои шаблоны для таких условий, потому мне так хочется))

Проблемы у нас в багтрекере и по серьезнее, а это задача которую надо выполнить, руки есть, голова тоже, зенка позволяет сделать любую логику, которую можно оттачивать до бесконечности, сама тема лишь в удобстве. Нужны таймауты в кубиках или нет, пусть уж голосование решает.

____
P.S. Либо как вариант, сделать возможность для некоторых кубиков "игнорирование загрузки страницы".
Еще можно попробовать перед проверкой останавливать загрузку, но это совсем крайний вариант.
 
Последнее редактирование:
Просто 20-50% пакетов потеряно и страница ушла в бесконечную загрузку,
Пожалуйста, ответьте на конкретный вопрос:
Страница в итоге загрузилась частично и продолжает загрузку или не загрузилась совсем за эти 15 секунд - белая страница?

Кубик таймаут 5 сек перед проверкой на элемент
Что за кубик таймаут? Если речь о "Пауза", то стоит понимать, что это совершенно разные действия.
Пауза 5 секунд означает, что данное действие будет выполняться ровно 5 секунд
Таймаут 5 секунд - это максимальное ограничение времени для выполнения действия.


Это не проблема, это следствие. Только не давно был случай когда к серверам зенолаба были проблемы с доступом, нагрузки на сети не редкость в наше время и лично я оптимизирую свои шаблоны для таких условий, потому мне так хочется))
И? Из-за этого нужно добавлять таймауты в экшены "Обработки текста", "Установки значения переменной" и всем остальным?
Кажется, что Вы не до конца понимаете предназначение таймаута.

Нужны таймауты в кубиках или нет, пусть уж голосование решает.
Сначала нужно понять в чём конкретно заключается проблема. Возможно, что она решается совершенно другим способом.
 
Последнее редактирование:
Пожалуйста, ответьте на конкретный вопрос:
Страница в итоге загрузилась частично и продолжает загрузку или не загрузилась совсем за эти 15 секунд - белая страница?
Прошу прощения. Страница не загрузилась и продолжает загрузку, белая страница. В ошибку загрузка не идет а просто без конца грузит.
 
Сначала нужно понять в чём конкретно заключается проблема. Возможно, что она решается совершенно другим способом.
Если есть способ я не против. Такое воспроизвести можно если перебросить сигнал через европу что бы пакеты терялись. Например используя VPN + моб прокси.
 
Пока ZennoPoster не способен работать с мобильными проксями из коробки
В чем проявляется неспособность и как должно быть?

В ошибку загрузка не идет а просто без конца грузит.
Я правильно понимаю, что речь идет о том, чтобы выводить экшен "Переход на страницу" по красной ветке, если она не загрузилась?
 
В чем проявляется не способность и как должно быть?
Сложно сказать. Вот грузится страница на середине загрузки прокси перезагрузилась - ошибка. Клик, ввод текста, что угодно. Будет ошибка. Надо сверять всегда отсутствие разрыва сети + сверять что страница загрузилась, клик прошел, текст отправился. Есть простые сайты и не очень. У меня сайт на ajax и малейшие сбои катастрофически, приходится очень долго тестить что бы отловить все эти ошибкт и прикрутить соотвествкющую логику.
 
  • Оценить
Реакции: ibred
Я правильно понимаю, что речь идет о том, чтобы выводить экшен "Переход на страницу" по красной ветке, если она не загрузилась?
А как понять что она загрузилась. 1 страница это 100 запросов условно. Какие то важные, а какие то нет. Она может загрузится не полностью, но хтого хватит совершить действия. И не ждать загрузку второстепенных запросов.

Если можно как то тонко настраивать параметры выхода по красной ветке при загрузке, то может быть это и подошло бы. Заранее не могу сказать. Надо тестить.
 
А как понять что она загрузилась. 1 страница это 100 запросов условно. Какие то важные, а какие то нет. Она может загрузится не полностью, но хтого хватит совершить действия. И не ждать загрузку второстепенных запросов.
В таком случае можно сделать проверку на "отправились ли важные запросы", которых достаточно для продолжения работы.
Это возможно реализовать уже сейчас с помощью метода GetTraffic().

Например, с помощью этого сниппета:
C#:
Развернуть Свернуть Копировать
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return "Запрос был успешно отправлен";
    }
}
return "Такого запроса нет";
 
В таком случае можно сделать проверку на "отправились ли важные запросы", которых достаточно для продолжения работы.
Это возможно реализовать уже сейчас с помощью метода GetTraffic().

Например, с помощью этого сниппета:
C#:
Развернуть Свернуть Копировать
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return "Запрос был успешно отправлен";
    }
}
return "Такого запроса нет";
Спасибо. Завтра (сегодня) попробую. О результатах отпишу.
 
В таком случае можно сделать проверку на "отправились ли важные запросы", которых достаточно для продолжения работы.
Это возможно реализовать уже сейчас с помощью метода GetTraffic().

Например, с помощью этого сниппета:
Это просто потрясающе. Не знаю как я раньше жил без этого. Спасибо большое!
 
  • Оценить
Реакции: Sergodjan
В таком случае можно сделать проверку на "отправились ли важные запросы", которых достаточно для продолжения работы.
Это возможно реализовать уже сейчас с помощью метода GetTraffic().

Например, с помощью этого сниппета:
C#:
Развернуть Свернуть Копировать
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return "Запрос был успешно отправлен";
    }
}
return "Такого запроса нет";
Спасибо! Но вот с доменами .РФ и урлами содержащими кирилицу, не работает. Можно сделать, что бы работало?
 
Спасибо! Но вот с доменами .РФ и урлами содержащими кирилицу, не работает. Можно сделать, что бы работало?
РФ-домены нужно конвертировать в punycode, а кириллические URL энкодить.
 

Вложения

  • Оценить
Реакции: Igorii и Mikhail B.
В таком случае можно сделать проверку на "отправились ли важные запросы", которых достаточно для продолжения работы.
Это возможно реализовать уже сейчас с помощью метода GetTraffic().

Например, с помощью этого сниппета:
C#:
Развернуть Свернуть Копировать
var traffic = instance.ActiveTab.GetTraffic();
foreach(var t in traffic) {
    if (t.Url=="https://zennolab.com/ru/") {
        return "Запрос был успешно отправлен";
    }
}
return "Такого запроса нет";
Отличная вещь! Можно как то не такое строгое правило сделать, слэш исключить?
 
Отличная вещь! Можно как то не такое строгое правило сделать, слэш исключить?
Можно использовать частичное вхождение t.Url.Contains("Здесь ссылка") или регулярное выражение.
 

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