That is what I ended up doing. Creating the log with object option string and converting it to json inside the log event. I'm ecstatic about this interface update! So many creative ideas!
Regards,
Allisters
Обнова нереально годная.


Пожалуйста добавте стрелочки Фокса
@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:
можно телегу, пару вопросов?
Обычно я не оказываю бесплатных приватных консультаций, ни в личке, ни в телеге, ни еще где-либо кроме тех случаев, когда я сам предложил.
И даже в этих случаях, я не пишу код за других, могу сказать что надо сделать, но не как.
В виде исключения отпишу через минуту телеграм в личные сообщения, я не люблю переписываться, пожалуйста, будь готов говорить голосом.