Pavel
В какой багтрекер писать? В хромиум?
Епт включил какой то упоротый флаг '--use-gl=egl' и заработало)
Pavel
Pavel
Ну ее советуют везде в CI, не так страшно
ajaycod 🔥
is there any way to load extension in puppeteer ?
ajaycod 🔥
yeah i found this
ajaycod 🔥
but i want to enable extension
ajaycod 🔥
i mean need to change some options in extension
Stripe
Привет
Stripe
при нажатии кнопки идет перерисовка дерева, как мне дождаться что дерево будет отрисовано? На селектор вешаться? spa приложение.
Alex*
Да, думаю на селектор
Alex*
А как это? Ведь "Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium"
Alex*
Не знал. )
倫太郎
не, у мене хром везде
Alex*
Вопрос такой есть. Как работать с одним списком ссылок нескольким парсерам, которые после обработки отмечают ссылку обработанной. Запрос к MySQL, где хранятся ссылки асинхронный, а мне надо дождаться проверки статуса ссылки. Парсер читает сначала весь список ссылок, а потом перед обработкой следующей, проверяет не обработал ли ее кто-то еще. ) Голову сломал.
Alex*
Согласен. Этот вариант тоже рассматривался - воркер 1 забирает пакет ссылок и делает их статус - в работе, чтобы другие не забирали. После завершения, отмечает ссылку обработаеноой.
Alex*
Но там надо что бы у каждого воркера был свой ID. Чтобы если парсинг прервется по каким то причинам, найти свои не добобработанные ссылки. А так да, надо делать пакетами.
Alex*
Получается нужен дисптечер раздающий задачи воркерам.
Alex*
Здесь их немного ~ 400. Это даже не одна ссылка, а несколько по одному id, типа профиля пользователя id/config, id/conact и т.д. Процесс зятгивается на 10-15 секунд и там фронтенд медленный к тому же. Поэтому хотелось это ускорить запустив несколько парсеров сразу.
Pavel
Browser Testing and Tools Working Group опубликовала First Public Working Draft спецификации WebDriver Level 2. WebDriver — это интерфейс для удаленного управления различными юзер агентами.
Roman
приветы! пытаюсь запустить puppeteer под xfce, если в самом рабочем столе через VNC запускать скрипт ноды все окей, но если из терминала с указанием: DISPLAY: ':1.0' в env то получаю: Error: Failed to launch chrome!
Roman
что то точно отличается в переменных окружения
Pavel
Есть у кого нибудь circle-ci с настроенным codecov или автодеплоем в npm? Чет codecov не робит, а второе лень искать)
Pavel
Pavel
не может найти репорты, хотя они должны быть, в трависе есть.
Pavel
попробуй это
Roman
Хорошо спасибо
Stripe
Привет всем, кто использовал Puppeteer в докере?
Evgeniy
Привет всем, кто использовал Puppeteer в докере?
Я игрался. Но в прод пока не пошло
Arthur
Привет, ребята! Есть задача записывать видео файлы из реплеев WebGL игры. Вот таких например: https://timeloop.games/m/?id=oqgaqaofmfpkhzgi&room=qooncirwfngtvjjp&game=vyocllkaiszfurpb&replay=vyocllkaiszfurpb_jiotjcsvjwkhlxuu Но нужно это делать на сервере а не на десктопе. И так чтобы пооптимальнее, чтобы косты минимизировать
Arthur
Puppeteer с таким справится? Кто-то пробовал?
Stripe
да, я делал, чтобы puppeteer во время теста сайта снималвидео
Arthur
а сайт с webgl элементами?
Stripe
не, но там не пуппитир снимал видео, а утилита, пуппитир только ей управлял
Dmitry K
Всем привет Ни у кого не возникало проблемы с puppteer в докере? Некоторые ссылки просто отваливаются по 60с таумауту, хотя с локалки открываются за 3-6с
Arthur
Если кто-то сможет сделать такое за деньги, то стукнитесь в личку.
Pavel
Если кто-то сможет сделать такое за деньги, то стукнитесь в личку.
Нет, но с тебя лайк в репу, так как возможно я тебе сократил пару дней поисков)) Просто почитай.
Alex*
Вечер добрый! Что-то не получается page.setCookie ... C этойже формой авторизации нормально отрабатывает в php curl_setopt($curl, CURLOPT_COOKIE, ... ) А вот puppeteer не хочет. Пример работающий в реальной ситуации посмотреть бы.
Roman
Делаете до навигации?
Alex*
Делаете до навигации?
Наверное до, если до await page.setViewport и page.goto ...
Alex*
Наверное до, если до await page.setViewport и page.goto ...
Скрипт на php отдает значения кукисов через curl без названия полей и все проходит без авторизации. А в puppeteer отдаю ВСЕ кукисы как они были сохранены, с названиями полей и пр ... Но есть ньюанс - на сайт заходим, а в админке сайта в журнале зафиксирована авторизация. Прям беда ... (
Alex*
Закинул весь кукис в переменную и все заработало, форма входа не запрашивается и авторизация в журналах не проходит. Значит что-то не так с кукисами при чтении их из файла.
Stripe
у меня в бд храниться в все хорошо читает
Stripe
возможно не так сохраняешь...
Alex*
у меня в бд храниться в все хорошо читает
Да, кидаю просто в текстовый файл. Чуть позже переделаю.
Юрий
Привет, друзья! А не подскажите ли такую вещь: мне надо изменить url при редиректе, т.е. если я вижу, что страница инициирует запрос на http://site.com/?params=1 то хочу подменить запрос на http://site.com/?params=2 делаю page.on('request', async (request) => { request.continue({url:new_url}); }) но это не срабатывает. точно так же как и не меняются заглоовки. погуглив, я так понял, что это функционал не работает, но очень хочется надеяться, что яошибаюсь
Evgeniy
Там надо сначала флаг включить
Юрий
ну вот с перехватом как то и не работает. но я сейчас ещё попробую с версиями поиграться. пока только тестировал на 1.17 оказывается. а думал что на послденей
Evgeniy
Ну то что ты хочешь, это редирект, не так ли?
Юрий
да
Юрий
только с другим параметром в урле
Evgeniy
А перехват обычно для подсовывания данных вместо запроса. Ну, я так считаю
Evgeniy
Но вот похоже ишью. https://github.com/GoogleChrome/puppeteer/issues/2848
Юрий
ну, главное понять, что так можно) если можно, значит я что т не так делал всё эт овремя)
Юрий
Но вот похоже ишью. https://github.com/GoogleChrome/puppeteer/issues/2848
таааак, ага, вот примерно тоже самое, да
Evgeniy
Перехват работал, я в тестах его использовал. А вот редирект не пробовал
Bohdan
Господа, а не подскажите как правильно ловить ошибки нет?
Stripe
try cath
Bohdan
Bohdan
просто я их проверяю как стринг
Bohdan
у меня просто юзаются прокси, и они часто дохлые
Stripe
каждый промис возвращает метод cath где сможешь отловить ошибку
Bohdan
ну это ясно
Bohdan
я про то как правильно проверять ошибки net
Stripe
ошибки не так валидишь
Bohdan
а как?
Stripe
есть специальные коды, а не проверять методом startW...
Bohdan
есть специальные коды, а не проверять методом startW...
ну в доках можно только таймаут проверять?
Bohdan
err instanceof puppeteer.errors.TimeoutError
Stripe
выведи просто в консоле инсталс ошибки
Stripe
при разных ошибках, ошибка тунеля, ошибка ответа и тп
Stripe
а не так как у тебя сейчас....
Bohdan
ну там вроде инстанс голый еррор
Bohdan
или как его правильно проверить?
Bohdan
выведи просто в консоле инсталс ошибки
не подскажешь как ты чекаешь?
Bohdan
ну так и сделал, просто думал может есть другое решение кроме как проверять стринг