Pavel
Овнер передал на меня эту группу, поэтому я зарекрутил @nazarkk как второго админа и добавил бота @shieldy_bot для предотвращение спама.
Alpenveg
Круто
John
Pavel
упала админка на меня, да)
Pavel
развивайте сообщество и пиарьте, например.
Pavel
я не особо активный так то, чуток написал штуку одну на пуппетере
Pavel
вот https://github.com/mrdoob/three.js/tree/dev/test/e2e
Alpenveg
Ссылки на сообщество вообще где-то есть? Я просто в телеге через поиск нашел
Pavel
вроде не делали.
John
Кому надо тот найдёт
John
Кто то ботоводит Али через кукловода?
Artem
alécio
Hey friends
I'm creating a bot to enter the site.
After opening the popup I have 2 fields, emailAddress and password. Both have random id and only name value.
The emailAddress is not completing. But the password works normally(completing).
Can someone help me?
Pavel
Видео кто нибудь писал в пуппетеере?
Pavel
эта штука живая? https://github.com/clipisode/puppeteer-recorder/blob/master/index.js
Назар
ага
Назар
на маке не работает практически. Вообще там суть в том, что оно делает скриншоты 60 раз в сек и клеит потом через ffmpeg в видео. Но на маек нельзя делать скрин чаще чем раз в пол секунды вроде. И вообще скрин делать долго в любом случае.
Pavel
ну надо переписывать и дожидаться походу.
Alexander
Ребят, привет!
А кто-то может знает почему в некоторых ситуациях отваливаются по таймауту такие вещи:
page.waitForNavigation({ waitUntil: 'networkidle0' })
Pavel
Pavel
Alexander
Сложные вопросы) Есть еще внутренние таймауты
Ну если смотреть по доке то там есть:
load, domcontentloaded, networkidle0, networkidle2 -
Еще можно нескольких событий дожидаться page.goto('http://xx', {
waitUntil:['domcontentloaded', 'networkidle0']
})
или можно еще так: await page.waitFor('*') - ждать пока все элементы на странице отрисуются.
Ну вот допустим у меня страничка логина,
я ввожу логин и пароль и отправляют форму на сервер.
Как мне дожидаться события когда все вернулось и закончился весь джаваскрипт?
и почму networkidle бывает никогда не наступают?
А что за внутренние таймауты?
Alexander
Сложные вопросы) Есть еще внутренние таймауты
дело в том что я не просто чето-то там скриптую, а пытаюсь измерять перформанс фронтенда,
всякие там лонг таски, UserTiming, количество объектов в памяти и все такое
И хочется делать все это не методом тыка, а точно знать что когда происходит.
Pavel
Pavel
Pavel
CDP сессию из пуппетера довольно просто создавать и дергать апи.
Alexander
Alexander
удаляются сообщения
Pavel
Alexander
в общем, есть интересная либка гитхаб /treosh/uxm
Alexander
Pavel
Alexander
https://github.com/treosh/uxm
Pavel
/restrict
Shieldy
/restrict
Great! Now all newcomers will be able to send any type of content to this chat.
Pavel
Pavel
Пуппетер больше для стандартных задач и у него есть уже наработки, так как популярен более менее.
Pavel
Глянь еще playwright, может тебе другие браузеры нужны. Впрочем апи очень сильно похоже, миграция возможна.
Alexander
Pavel
倫太郎
Pavel
倫太郎
倫太郎
А шилди я добавить и так не мог
倫太郎
👌
Alexander
а вот кстати, не знаете где можно почитать какое-то вменяемое описание chrome trace файлов?
вот этой вот всей чепухи
Alexander
я вот нашел статью, там чел замеряет сколько cpu тратится на какие-то отдельные реактовские компоненты
https://calendar.perfplanet.com/2019/javascript-component-level-cpu-costs/
хочу подробнее разобраться что хром в трейс файлы пишет
DeniskaAb
А как сохранять файлы из кеша?
Alexander
Это обобщение над 3 браузерами
но кажется в нем нету такой штуки как в puppeteer, вот этих как раз page.metrics()
https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagemetrics
Pavel
Alexander
А как сохранять файлы из кеша?
ну можно задать чето const browser = await puppeteer.launch({
userDataDir: './data',
});
или нужно програмно к кешу обращаться?
DeniskaAb
DeniskaAb
Ещё нужно как то узнать что все файлы запрошенные страницей загрузились
Назар
DeniskaAb
DeniskaAb
Если там скрипты подгружают?
Alexander
Кстати, никто не пробовал puppeteer использовать из дарта?)
Назар
весь папитир то пусть и тот же, но использовать другие библиотеки из npm не получиться, а аналогов нет.
John
у меня как то было) никак не мог отловить когда загружается страница.. потом нашёл что внешне хоть и загружено всё, а запрос xhr еще идет.. так что юзаю сейчас
https://www.npmjs.com/package/pending-xhr-puppeteer
John
вопрос такой.
есть авторизация на сайте, где могу зайти на сайт, выполнить любой запрос XHR. отливить его, дальше я этот запрос редактирую и через axios вместе с токенами и прочей шляпой посылаю.
на данный момент как только токен просрочился мой запрос не рабочий становится и я не могу его менять, можно ли как то запускать кукловода, заходить на сайт, сохранять токен или передавать его в ахios и закрывать кукловода, на этом его миссия закончена будет)
John
вообщем если кому интересно
вот так куки получают;
const cookies = (await page.cookies()).map((cookie) => { return ${cookie.name}=${cookie.value}; }).join('; ');
но как оказалось сайт к которому я обращался ему вообще пофиг на куки и на авторизацию, если знаешь какой запрос кинуть, он его проглотит, остальное вообще все равно...
вот.. остаются до сих пор такие сайты.. печаль
Artem
Alexander
Alexander
а кто-нить пробовал лайтхаус из puppeteera запускать?
1
Подскажите, как правильно щёлкнуть по данному полю?
Щёлкаю так, но не срабатывает
selector = '#app_date'
await page.waitForSelector(selector);
await page.click(selector);
Alexander
1
1