Критич. ошибка в логе: "Таймаут во время выполнения MouseMove"


  • administrators

    @sergodjan66 В worker_log.txt есть координаты, если такое повторится, присылайте, это поможет.



  • @support said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

    @sergodjan66 В worker_log.txt есть координаты, если такое повторится, присылайте, это поможет.

    ок, спасибо, попробую снова промоделировать этот момент, если получится повторить - пришлю..



  • и меня возьмите к себе в топик :)
    у меня тоже в новых версиях начало сыпать "Таймаут во время выполнения MouseMove" хотя блок "эмуляция бездействия" в режиме [4] т.е. только сон, движения мышью нету.



  • Тоже столкнулся с такой проблемой.
    UPD: Ошибку вызывает блок "настойка мыши", без него все работает.


  • administrators

    Это или настройки мыши или процесс браузера вылетел.



  • Присоединяюсь к теме. Процесс вроде жив был.



  • заметил такую штуку (воспроизвел несколько раз, закономерность присутствует):
    если во время выполнения например "эмуляция бездействия" происходят какие-то процессы на странице, например загрузка какого-то элемента, то вылетает в "Таймаут во время выполнения MouseMove".

    Берем любую страницу, например [https]://ria.ru/science/ (на ней у меня точно воспроизводится проблема). "браузер"->"загрузить" и она грузится довольно долго, не укладываясь в таймаут. Оборачиваем загрузку в игнорирование ошибок. Все ок, страница загрузилась.
    Далее действие "двигать мышь и кликнуть на элемент", происходит переход на другую страницу где такой же залипон, но ошибки нет. Следующим идет блок "эмуляция бездействия" и на нем ловим "Таймаут во время выполнения MouseMove", хотя реально - это таймаут загрузки страницы, на которую мы перешли после клика, а не таймаут движения мышью.

    Почему такие траблы с загрузкой я пока не смог понять, как вариант один из элементов или JS библиотек залип в подгрузке или какая-то JS либа решила что-то заинклудить на страницу. В обычном браузере страница открывается без проблем, а в БАСе уходит в таймаут. Интересно бы узнать как БАС чекает загружена ли страница.

    P.S.
    по сути получается так, если на странице начинается какое-то движение инициированное JS либами, БАС ловит его понимая что страница загружается и при таймауте, таймаут достается тому блоку, который сейчас выполняется. Возможно я ошибаюсь или не достаточно точно описал, но по наблюдениям как-то так картина получается.



  • @Sevenup можно в обычном браузере посмотреть время загрузки
    http://prntscr.com/fruwa0



  • @DrPrime said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

    @Sevenup можно в обычном браузере посмотреть время загрузки
    http://prntscr.com/fruwa0

    http://c2n.me/3LSVbfd.png

    99% страницы загружается за <5c потом тянется какой-то их пиксель и на нем провал. Если его игнорировать то загрузка очень быстрая. Но таких пикселей, которые инклудит JS на разных сайтах бывает довольно часто.

    Можно оборачивать страницу в игнорирование ошибок и все казалось бы ок.
    Но, если вдруг, на странице, какая-то JS через N времени решит заинклудить что-то еще, например вебвизор движение мышью и вдруг он сделает это долго, БАС вылетит с ошибкой таймаута того блока, на котором находится выполнение проекта в данный момент. Как в данном случае блока движения мышью (эмуляция бездействия).



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



  • @DrPrime said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

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

    http://c2n.me/3LT14XK.png
    именно так и реализовано, отключена ожидание загрузки и включен таймаут с обернутый в игнорирование ошибок, дальше сон что бы дать время загрузится, а далее уже "двигать мышью и кликнуть на элемент", после клика по элементу происходит переход на другую страницу где снова элементы, которые грузятся долго. После клика происходит переход на "эмуляция бездействия" 7с, а на самом деле она происходит не 7с, а около 30 и/или вываливается в "Таймаут во время выполнения MouseMove".



  • Получилось исправить? Ошибка тоже надоела. Потоки стопаются из-за нее.



  • @Ranout Если ошибка в блоке бездействия, можно попробовать его написать самому. Тут же на форуме где то была функция.



  • @Ranout said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

    Получилось исправить? Ошибка тоже надоела. Потоки стопаются из-за нее.

    поставь больше таймаут и к-во ошибок при выполнении проекта пока задача не решиться - это позволит тебе продолжать использовать проект без остановок.


  • administrators

    @kain

    Присоединяюсь к теме. Процесс вроде жив был.

    Ок, кидайте проект


  • administrators

    @Sevenup

    Оборачиваем загрузку в игнорирование ошибок.

    Можете просто не ждать полной загрузки


  • administrators

    @Sevenup

    P.S.
    по сути получается так, если на странице начинается какое-то движение инициированное JS либами, БАС ловит его понимая что страница загружается и при таймауте, таймаут достается тому блоку, который сейчас выполняется. Возможно я ошибаюсь или не достаточно точно описал, но по наблюдениям как-то так картина получается.

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

    Ту дело в другом, а именно в то время как стает пустой во время перезагрузки функция скрола не возращает значение, из-за этого таймаут. Сейчас правлю.


  • administrators

    @Sevenup said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

    Почему такие траблы с загрузкой я пока не смог понять, как вариант один из элементов или JS библиотек залип в подгрузке или какая-то JS либа решила что-то заинклудить на страницу. В обычном браузере страница открывается без проблем, а в БАСе уходит в таймаут. Интересно бы узнать как БАС чекает загружена ли страница.

    Скорее всего метрика + Украина.



  • @support said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

    @Sevenup said in Критич. ошибка в логе: "Таймаут во время выполнения MouseMove":

    Почему такие траблы с загрузкой я пока не смог понять, как вариант один из элементов или JS библиотек залип в подгрузке или какая-то JS либа решила что-то заинклудить на страницу. В обычном браузере страница открывается без проблем, а в БАСе уходит в таймаут. Интересно бы узнать как БАС чекает загружена ли страница.

    Скорее всего метрика + Украина.

    через прокси ж работа :)
    конкретно в случае с страницей "[http://]ria .ru/ science" http://c2n.me/3LSVbfd.png на скрине видно, что не метрика.

    если кому интересно, можно воспроизвести описанным выше способом, дублирую:

    • блок "браузер"->"загрузить" (грузим для примера страницу [http://]ria .ru/ science)
    • блок браузера оборачиваем в игнорирование ошибок или выключаем ожидание загрузки, если выключаем ожидание, после ставим спать несколько секунд давая время загрузится странице
    • блок "двигать мышь к элементу и кликнуть" на любую ссылку страницы
    • происходит переход на страницу, по которой кликнули

    вот тут вопрос, как в случае клика работает "ожидание загрузки"? наследует режим предыдущего блока "загрузить" т.е. в нашем случае выключено?

    • пока страница по которой мы кликнули пыжиться и не может догрузиться, у нас уже включается блок "эмуляция бездействия" и на нем мы получаем таймаут MouseMove параллельно наблюдая как страница так и не может загрузиться

    при такой последовательности ошибка у меня воспроизводится в 80% случаев, потому и пришел к описанному выше выводу.

    P.S.
    я не много букв пишу? :) Вы если что меня останавливайте :)))


  • administrators

    @Sevenup Исправил.
    https://bablosoft.com/distr/BrowserAutomationStudioDevelopment/20.0.4/BrowserAutomationStudioInstallAllInOne.exe

    Ошибка была в том, что между рендером новой страницы и началом загрузки document в js был нулевой, и функция прокрутки не возвращала значение.

    если кому интересно, можно воспроизвести описанным выше способом, дублирую:

    Это уже работает.

    вот тут вопрос, как в случае клика работает "ожидание загрузки"? наследует режим предыдущего блока "загрузить" т.е. в нашем случае выключено?

    Действие "Загрузка" считается выполненным, когда от браузера придет событие OnLoadEnd. Тоесть все как у обычного браузера.
    "Ждать Полной Загрузки" сложнее.
    Упрощенно, это действие ждет либо OnLoadEnd либо окончания запросов которые были сделаны за последний промежуток времени.
    Я придумал алгоритм сам, старался чтобы он работал и для обычных страниц, и там где все через ajax и сайтов, которые совершают запросы постоянно, вроде сервиса для стриминга или видеохостингов.

    Вот тут можно посмотреть код
    https://github.com/bablosoft/BAS/blob/6ac6369a844e4466fe085b7d643ebfd928c77511/Engine/scripts/engine/worker/waiters.js#L395-L462

    я не много букв пишу? :) Вы если что меня останавливайте :)))

    Для меня идеально шаги для повторения ошибки(как сделали вы) или проект.


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.