1
Селектор в коде имею ввиду выглядит как
Выше файл site.txt прикреплён.
const selector = 'ng-select#location';
await page.waitForSelector(selector, { visible: true, timeout: 5000 });
await page.evaluate(selector => {
document.querySelector(selector).scrollIntoView({ behavior: 'smooth', block: 'center' });
}, selector);
Wudu
🅰️nimeCoder
емае
🅰️nimeCoder
вы меня конечно извините, но тут человеку протезировать зубы как слиток золотой, а вы еще мишане)
мишаня может и без зубов обойдется )
Лешка
скамер
🅰️nimeCoder
на прошлую работу как то приносили ворону для сканирования ноги, чтоб ей протез сделать
хотелось сказать что лучше бы они ее грохнули) чтоб она не мучалась
👨💻
кто пробовал отключать на лету directx/blink модуль в браузере для остановки отрисовки ?
Null
кто пробовал отключать на лету directx/blink модуль в браузере для остановки отрисовки ?
> отключать blink
Как ты представляешь себе отключение важнейшего модуля, который строит DOM-дерево, рассчитывает стили, встраивает движок V8 для выполнения JS и т.д.?
> для остановки отрисовки
Отрисовка это не просто отображение в виде пикселей, отрисовка это в том числе построение DOM, вычисление перекрытий, смешивание цветов (прозрачность и т.п.).
Null
кто пробовал отключать на лету directx/blink модуль в браузере для остановки отрисовки ?
Ну и самый главный вопрос - зачем ты это хочешь сделать?
Если это попытка сэкономить ресурсы, то не получится. Финальная растеризация (перевод изображения, описанного векторным форматом в пиксели) не так чтобы много ресурсов съедаеи. А построение того самого DOM необходимо, чтобы корректно отрабатывали в том числе скрипты, потому что они могут быть завязаны на перекрытие/скрытие/прокрутку/состояние элементов.
1
Подскажите, почему вылетает puppeteer если не получает ответ XHR, хотя в try catch?
throw new Errors_js_1.TimeoutError(`Timed out after waiting ${ms}ms`, { cause })
TimeoutError: Timed out after waiting 30000ms
[cause]: undefined
Node.js v22.14.0
Дополнено:
Дополнено позже: помогло добавления глобального обработчика ошибок:
process.on('unhandledRejection', (reason) => {
if (reason.message.includes('waitForResponse')) {
console.log('Ожидание XHR было прервано');
}
});
Null
Raso
Hey who has 403 cf issue? I have a solution
👨💻
👨💻
Вопрос тогда в том, что финальная картинка все ещё занимает видеопамять, и как раз эта особенность меня сильно смущает. Не столь много процессорных ресурсов жрется, сколько памяти видеокарты.
👨💻
Dom - это всего лишь репрезентация js объекта.
Как конкретно построение желаемый картинки происходит - не знаю. Все что описано в сообщениях выше с перекрытиям, смешкниванием цветов - это как раз оч лишняя вещь для меня, которая кушает ресурсы
👨💻
Сколько читал, везде blink ассоциировался с построением графики только. В любом случае там участвует directx, которое уже инструкции в себя принимает для видюхи. Отключив его, можно попробовать добиться отключение картинки. Или хотя бы зависание статическое.
🅰️nimeCoder
🅰️nimeCoder
откуда композитор окон и прочего должен взять картинку и как собрать и куда еще потом ее поместить чтобы вывести ее тебе?
Sektor
парни а кто через cdp работает не случалось такое что внезапно вебсокет переставал отвечать на запросы? А потом сам так же начинал отвечать нормально. Хотя если параллельно законнектиться руками то все нормально
Sektor
это не сразу, а типа если 1-2 дня постоит софт то замечаю такое. в 1 поток работа идет
Sektor
нужно например заново на страницу перезайти или что-то еще сделать и внезапно начинается что таймаут получения ответа от вебсокета
Null
Dom - это всего лишь репрезентация js объекта.
Как конкретно построение желаемый картинки происходит - не знаю. Все что описано в сообщениях выше с перекрытиям, смешкниванием цветов - это как раз оч лишняя вещь для меня, которая кушает ресурсы
DOM - это просто объекты с параметрами, которые представляют HTML-разметку. Есть ещё CSSOM. А всё это вместе формирует Render Tree. Т.е. в самом этом дереве есть описание объектов и их параметров. Но там нет "геометрии" и перекрытий.
Для этого есть этап Layout:
- Определение координат (x, y, w, h)
- Вычисление позиций и размеров элементов (пиксели)
Потом идёт этап Compositing (разбиение на слои и оптимизация перерисовок/перерасчётов).
Ещё какие-то там этапы есть. И только потом происходит растеризация - преобразование векторных команд в пиксели (может выполняться на GPU или CPU).
Я не знаю какой процент он занимает от общего пайплайна, но не думаю что сильно много, особенно если есть GPU.
А вот расчёты выполняются только на CPU и нет возможности их никак пропустить. Ведь не зная какой элемент над каким находится, виден ли он, находится ли он во вьюхе и т.д. не получится понять над каким элементом вызывать событие наведения курсора, к примеру, не понятно так же что делать когда пользователь делает клик (куда именно? какой элемент в данный момент выше), или прокрутку (что крутим - таблицу, блок, страницу и т.д.).
Null
Но по хорошему конечно же лучше сделать замеры сколько уходит на каждый этап, отрисовка на GPU и CPU.
Null
Null
https://www.youtube.com/watch?v=K2QHdgAKP-s
pancake ✨🥞
Добрый день! Кто-нибудь сталкивался в Puppeteer с проблемой out of memory, раньше при том же функционале бота все работало замечательно, сейчас возникают утечки памяти. Не знаю что делать, может кто сталкивался в последнее время? использую node.js + puppeteer + chromium
🅰️nimeCoder
pancake ✨🥞
Делай снапшот и ковыряй
снапшот в смысле сохранять скрин и html разметку? а можно ли как-то сохранять еще и данные по памяти, которые видны в девтулс?
🅰️nimeCoder
pp
Всем привет, подскажите, кто-нибудь сталкивался с капчей от vercel, которая требует решать задачу?
Проблема в том, что токен я получаю, но запросы всё равно не проходят.
Raso
Sektor
а кто-нибудь знает как occlusion в хроме отключить? флаги пробовал но не помогают
Sektor
если хром свернут то запросы к нему через cdp очень туго обрабатываются
Виталий
@all
Всем привет)
Есть вопрос - кто-то уже нашёл актуальное решение для cloudflare капчи?)
У меня в infinite loop уходит и не пускает)
Виталий
Виталий
Только так
Sektor
Виталий
Если в видимом режиме запускать хром, то в любом случае при сворачивании будет зависать)
Виталий
Виталий
У меня даже в видимом режиме больше проблем было, чем в безголовом)
Sektor
а как его включать?
Null
Виталий
headless: "new" и флаг '--no-sandbox' нужно добавить в args
Виталий
У кого-то может не быть сервера и он тупо у себя на компе запускает на фоне
Виталий
В видимом режиме всё резаться будет, хз как это работает
Виталий
Типа фокус терятся что ли
Null
Sektor
Null
Но у меня винды нет, так что не знаю как.
Виталий
Я пробовал, не помогло)
При сворачивании скрипт будто просто вставал на месте и ждал, пока фокус в окно заново сделаешь
И отвал по таймауту дальше
Sektor
у меня на CDP на моем компе все решается на ура
Sektor
а на сервере нет
Виталий
Sektor
хз в чем дело
Sektor
может кто-нибудь знающий подскажет
Виталий
Я на винде в итоге брал сервак с видеокартой, выделенный сервак
Работало)
Sektor
потом взял на вин10 сервак
Sektor
и все равно
Виталий
На линкусе почему-то не всегда отрабатывает в безголовом, если говорить про работу по ssh
Виталий
Интересно
Sektor
а цдпшный клик почему-то палится именно на сервере
Виталий
Виталий
У меня беда с этим, а надо задачу решать срочно
Sektor
нет же, говорю же я через CDP
Виталий
100 из 100 не проходит
Виталий
Sektor
и у меня на моем компе все супер а на серваке нет
Sektor
Sektor
а он решает
Sektor
если кликнуть руками все норм