@xASZx Спасибо! Проверил, все шикарно работает!))
Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать")
-
В BAS есть несколько способов сброса - профили, restart браузера, создание нового потока и т.д.
Но всё это страшно нагружает CPU как известно.
Кроме того под некоторые задачи смена браузера(или профиля) в принципе не нужна, достаточно бесконечного цикла и действий внутри него.Я вывел для себя простую схему сброса через настройки хрома - chrome://settings/clearBrowserData.
Когда простой чистки fingerprint и cookie недостаточно, потому что некоторые сайты используют local storage например в том числе.Но проблема в том, что часто возникает баг спустя какое-то время:
- Допустим у нас есть два совершенно разных проекта.
- Оба работают какое-то время.
- Потом возникает в логе ошибка, что какой-то элемент не найден к примеру, а у нас для обработки ошибок установлен заранее manual, чтобы посмотреть из-за чего ошибка к примеру.
- (BAG) Открываем браузер и видим, что там профиль и сессия из ДРУГОГО проекта или из этого же, но другого ПОТОКА.
- (BAG) Либо открываем браузер, а BAS просто висит на странице и с элементами взаимодействие невозможно.
К сожалению отследить это и как-то понять, осознать и пофиксить - не представляется возможным, так как сама природа этого бага мне непонятна.
Но на днях я нашёл способ как 100% вызвать этот(или возможно ещё другой схожий баг) в BAS.
Симптомы очень схожи, поэтому возможно что это он и есть:- Достаточно создать действие manual browser где-нибудь и загрузить через него файл в форме на любом сайте.
- (BAG) После чего многие действия перестанут работать: смена Proxy; смена Fingerprint; обновление переменных вроде как работает, но если подставить их в Execute - действие проигнорируется и т.д.

Файл проекта для демонстрации бага: bas_profile_and_actions_bag.xmlСобственно вопрос: Как почистить браузер максимально близко к изначальному без рестарта браузера, без смены профиля, без нового потока и без этого бага?
-
@denispetrov Ваш скрипт создан на 25.5.0 версии BAS, на данный момент последняя версия BAS 26.3.0. Проверяли ли вы работу вашего скрипта в последней версии?
Но на днях я нашёл способ как 100% вызвать этот(или возможно ещё другой схожий баг) в BAS.
Симптомы очень схожи, поэтому возможно что это он и есть:Достаточно создать действие manual browser где-нибудь и загрузить через него файл в форме на любом сайте.
(BAG) После чего многие действия перестанут работать: смена Proxy; смена Fingerprint; обновление переменных вроде как работает, но если подставить их в Execute - действие проигнорируется и т.д.Проверил в 26.3.0 версии, после указания файла на сайте в режиме ручного управления все последующие действия работают корректно
-
@denispetrov said in Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать"):
@Fox благодарю за оперативный ответ.
проверил в крайней версии BAS:
- Проблема смены Proxy решилась
- (BAG) Execute on every page действие не применилось и BAS его проигнорировал, наследовав вариант до загрузки файла в мануале
После перехода на другую версию BAS вы обновили все действия в проекте?
-
@denispetrov said in Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать"):
(BAG) Execute on every page действие не применилось и BAS его проигнорировал, наследовав вариант до загрузки файла в мануале
Как можно повторить эту проблему намерено? Отдельно только её
-
@Fox пока я только нашёл единственный способ воспроизвести баг намеренно через загрузку файла в любую форму через действие Manual в BAS
в случае успеха(если проигнорировать загрузку файла в мануал) должно вывести:
[511309941] [00:53:23] Thread #1 : ТЕСТ 1 ПРОЙДЕН [547091972] [00:53:25] Thread #1 : ТЕСТ 2 ПРОЙДЕНв случае бага(если загрузить файл через мануал) выведет старое действие Execute соответственно:
[511309941] [00:53:47] Thread #1 : ТЕСТ 1 ПРОЙДЕН [547091972] [00:53:50] Thread #1 : ТЕСТ 1 ПРОЙДЕНфайл: bas_problem_execute.xml
-
@denispetrov said in Критический баг в BAS / Наследует старые переменные-профили и игнорирует многие действия (при этом продолжая "работать"):
@Fox пока я только нашёл единственный способ воспроизвести баг намеренно через загрузку файла в любую форму через действие Manual в BAS
в случае успеха(если проигнорировать загрузку файла в мануал) должно вывести:
[511309941] [00:53:23] Thread #1 : ТЕСТ 1 ПРОЙДЕН [547091972] [00:53:25] Thread #1 : ТЕСТ 2 ПРОЙДЕНв случае бага(если загрузить файл через мануал) выведет старое действие Execute соответственно:
[511309941] [00:53:47] Thread #1 : ТЕСТ 1 ПРОЙДЕН [547091972] [00:53:50] Thread #1 : ТЕСТ 1 ПРОЙДЕНфайл: bas_problem_execute.xml
Спасибо за описание проблемы и тестовый скрипт, проблему воспроизвёл и передал разработчику. Остальные проблемы из вашего первого сообщения присутствуют в 26.3.0 версии BAS?
-
@Fox благодарю со содействие!
к сожалению, как и сказал, определить точно, что именно вызывало баг практически невозможно, возможно что проблема была где-то в реализации взаимодействия между БАС и браузером, я попробую отключить принудительный Рестарт и вновь запустить проекты уже на новом БАСЕ, возможно ошибка и не всплывёт, если бы она возникала 100% - я бы с радостью поделился информацией, но увы, она всегда возникала спонтанно
по моим наблюдениям и насколько я знаю, БАС создаёт профили рандомно и с проверкой, т.е. вариант что двум разным потокам или проектам присвоется одинаковый воркер - исключен
если это утверждение верно, значит то что я обнаружил с мануалом может быть связано и с корнем тех проблемпоэтому я очень надеюсь, что их удастся решить по "цепной реакции", так сказать, если и в новой версии они всё ещё присутствуют конечно
-
Есть вариант обходного пути, создавать все таки каждый раз новый временный профиль.
Можно создавать на RAM диске, чтобы работало быстрее.Можно заранее создать образ(папка) чистого профиля и копировать его с места на место.
Я так делал, работало это быстро и стабильно.
-
-
-
Использую ImDisk. Легкий и бесплатный.
-
@Fox
до сегодняшнего дня использовал стандартную настройку с временными профайлами, каждый профайл - 52-57 мегабайт
сегодня сделал виртуальный диск из RAM - каждый профайл туда пишется 2,5MB - разница в 20 раз меньше
тестово сделал разок писать профайлы не в RAM диск а на флешку - также как и раньше - 57MB
т.е. почемуто в рам диск пишутся профайлы в десятки раз меньше с того же проекта.
почему? может оно должно именно так и работать но работает только почему-то на РАМ дисках, а может наоборот что-то нужное не дописывается в профайлы на РАМ
вобщем больше вопросов чем ответов
а так то конечно сразу видно полегче басу стало - и оперативка не перегружается так сильно и работает шустрее, посмотрю еще что с траффом может за сутки и он уменьшится теперь)
но что-то тут явно "не чисто"), или бас тупит в стандартных своих настроках, не может быть такой разницы только от смены диска для профайлов -
@basuser123
Насколько я понял вы имеете ввиду просто профили? Или именно временные профили?

