Thanks
Выпущена 27.6.1 версия BrowserAutomationStudio
-
Пожалуйста добавте стрелочки Фокса
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
по cookie никто не подскажет , как поправить?
У меня нет таких проблем, как все работало до этого, так и работает. С предыдущей версии экспортированные данные(кукисы, локальное хранилище, etc) загружаются в текущую версию.
-
Is this version already rolled out? When I open BAS it shows 27.5.1 and nothing update update.
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают
Есть какая-то странная фигня с кукисами, подтверждаю. Пока изучаю, но все выглядит очень странно.
@m4zuper, пожалуйста, проверь, нет ли странного поведения с кукисами.
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
какие-то работают на новой версии, какие-то нет,х.з поэтому и спрашиваю
Я посмотрел, на первый взгляд формат кукисов не менялся, но если восстановить сохраненные кукисы из предыдущей версии в текущую и потом опять их получить(восстановленные), то будет совсем пусто.
Судя по всему в рамках текущей версии все работает.
Пока не разбирался откуда растут ноги, думаю, что есть какая-то разница в хранении данных.
@m4zuper, зову на помощь.
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn 27.5.1 куки работают, гружу куки через 27.6.1 не работают
Я нашел причину, как минимум одну. У Chromium частично поменялся формат данных, если при восстановлении кукисов присутствует хоть одна кука старого формата, то кукисы вообще восстановлены не будут.
Хуже всего, что все происходит тихо и незаметно, пока воткнул в скриптах простую проверку, проверяю после восстановления, что кукисы реально существуют в браузере.
Потом воткну простой конвертер данных.
Если я удалю из сохраненных данных куки, что поменяли формат, то остальные кукисы будут восстановлены.
Старый формат:
{ "domain": ".example.com", "expires": 1750256760.245414, "httpOnly": true, "name": "cf_clearance", "partitionKey": "https://example.com", "path": "/", "priority": "Medium", "sameParty": false, "sameSite": "None", "secure": true, "session": false, "size": 161, "sourcePort": 443, "sourceScheme": "Secure", "value": "blabla" }Новый формат(изменен формат partitionKey):
{ "domain": ".example.com", "expires": 1753675151.508734, "httpOnly": true, "name": "cf_clearance", "partitionKey": { "hasCrossSiteAncestor": false, "topLevelSite": "https://example.com" }, "path": "/", "priority": "Medium", "sameParty": false, "sameSite": "None", "secure": true, "session": false, "size": 161, "sourcePort": 443, "sourceScheme": "Secure", "value": "blabla" }Текущий формат данных описан тут:
https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
то есть старые восстановить, для работы в новой версии баса уже не получится? я правильно понял?
Получится, почему же.
Вот код конвертации:
function convertOldToNew(oldCookies) { var newCookies = { cookies: [] }; // Get the current time in seconds var currentTime = Math.floor(Date.now() / 1000); for (var i = 0; i < oldCookies.cookies.length; i++) { var cookie = oldCookies.cookies[i]; var newCookie = {}; for (var key in cookie) { if (cookie.hasOwnProperty(key)) { newCookie[key] = cookie[key]; } } // Check if the cookie's expires time is in the past if (cookie.expires < currentTime) { // Set expires to one month from the current time var oneMonthLater = currentTime + (30 * 24 * 60 * 60); // 30 days in seconds newCookie.expires = oneMonthLater; } // Check if partitionKey exists and transform it if (cookie.partitionKey) { newCookie.partitionKey = { hasCrossSiteAncestor: false, topLevelSite: cookie.partitionKey }; } newCookies.cookies.push(newCookie); } return newCookies; } // [[COOKIES]] - данные в стандартном формате BAS, в виде объекта, не строки! // Конвертация строки с кукисами в объект: [[COOKIES]] = JSON.parse([[COOKIES_STR]]) VAR_COOKIES_CONVERTED = convertOldToNew(VAR_COOKIES); //log(JSON.stringify(VAR_COOKIES_CONVERTED, null, 4)); // конвертация обратно в строку: [[COOKIES_ NEW_STR]] = JSON.stringify([[COOKIES_CONVERTED]])Код дополнительно продляет кукисы на 1 месяц, если истек их срок действия, если не нужно, можно выпилить.
Код довольно простой, без проверок формата, который описан в документации.
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
можно телегу, пару вопросов?
Обычно я не оказываю бесплатных приватных консультаций, ни в личке, ни в телеге, ни еще где-либо кроме тех случаев, когда я сам предложил.
И даже в этих случаях, я не пишу код за других, могу сказать что надо сделать, но не как.
В виде исключения отпишу через минуту телеграм в личные сообщения, я не люблю переписываться, пожалуйста, будь готов говорить голосом.
-
@chyrik said in Выпущена 27.6.1 версия BrowserAutomationStudio:
может кто поможет , это сделать в .xml?
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Так как обходной путь существует, а значит вероятность, что будет фикс, не очень высокая.
