https://community.bablosoft.com/topic/29230/некоторые-огрехи-в-эмуляции-andoroid
Стало ли лучше в новой версии?
На сколько сейчас мобильная версия БАС отстает от десктопной?
@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?
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Так как обходной путь существует, а значит вероятность, что будет фикс, не очень высокая.
@A-Former-User said in Выпущена 27.6.1 версия BrowserAutomationStudio:
@sergerdn я тебя правильно понял, что изменения коснулись только "partitionKey" ?
Неправильно, как минимум коснулись, иначе говоря есть ли что-то еще, понятия не имею. Надо смотреть лог изменений, что я делать не планировал.
@Inwnew
На какой версии был создан профиль? И с помощью какого действия?
Каким именно действием применяете профиль?
В каком режиме возникает ошибка (запуск, запись, скомпилированный)?
В каком формате был указан прокси? Можете написать прокси в ЛС?
@Inwnew
По идее эту ошибку возвращает действие применения прокси, если в качестве метода получения информации об IP указано "custom function", но сама функция при этом не указана. Вы уверены, что ошибку возвращает именно действия применения профиля? Прикрепите, пожалуйста, тестовый проект.
@sergerdn said in Выпущена 27.6.1 версия BrowserAutomationStudio:
В теории, разработчик может сделать фикс бага(фичи) в следующем релизе. А вот будет или нет он делать, пока не известно.
Передано разработчику, но каким образом это должно фикситься, я не совсем понимаю)
@m4zuper Профили созданы с помощью стандартных настроек браузера. В принципе, я уже разобрался, если с нуля создавать действие, то таких проблем нет. Плюс, такая ошибка возникает, если установлен модуль ProxyCustom от @FastSpace , надо полностью его удалить, в т.ч. из файла проекта.
Хотя, конечно, запрос в таком случае идет на ip . bablosoft. com , а он, как известно, частенько подлагивает.