GamiD
Какой браузер используешь?
Посоветовали вариант без головы но он не особо подходит
Bogdan
Ну хром должен нормально кликать. Попробуй без прокси.
GamiD
ввод текста даже не происходит если не активен браузер
Bogdan
ПРокси не причем
Там в гологин браузере есть такой баг, без прокси ок с прокси нет я их уже месяц прошу починить
Bogdan
Ну вот
Bogdan
Значит там тоже
GamiD
Так в чистом chrome без прокси так же=)
Bogdan
Ну есть методы чтобы сделать браузер активным, я на память не вспомню.
Bogdan
Только не факт что поможет
GamiD
Ну есть методы чтобы сделать браузер активным, я на память не вспомню.
Если только с командой играться в каждом потоке по очереди свернуть и развернуть
Bogdan
Ну у тебя несколько браузеров и один другой перекрывает типо? И не кликается
Bogdan
А по одному работает ?
GamiD
Когда браузеров 10-20 без перекрытия ни как
GamiD
А по одному работает ?
например если 2 браузера открыты рядом то работает а если перекрывает то не работает
GamiD
в selenium есть такая функция driver.set_window_position(-10000, 0) Типо браузер перемешает за пределы экрана говорят помогает
Bogdan
Вообще странно поведение, я думаю это флаг в chromium нужно какой-то включить или выключить
GamiD
В инете искал не нашел выход какое та расширение предлагали он не помогает
Bogdan
А в headless работает?
Bogdan
Ну там есть метод чтобы один браузер поверх остальных переложить
Alhimik
да но когда 20 браузеров какой переложить=)
Можно попробовать некоторые варианты: 1. Сделать размер окна минимальным, а размер вьюпорта оставить как есть. Тогда несколько браузеров будут на первом плане без перекрытий. Думаю это никак не скажется на управлении браузером 2. Отключить тротлинг таймеров к примеру (--disable-background-timer-throttling) и вообще поиграться с параметрами запуска (https://peter.sh/experiments/chromium-command-line-switches/), возможно там есть что-то на эту тему 3. Ну или, самый очевидный вариант, это переходить в безголовый режим
Bogdan
может еще в OS есть какая-то штука по этому поводу
🦋noteee
page.on("request", (req) => { console.log(`[request] ${req.url()}\n${JSON.stringify(req.headers())}\n\n`); }); page.on("response", (res) => { console.log(`[response] ${res.url()}\n${JSON.stringify(res.headers())}\n\n`); });
Сначала идет в районе 10 запросов. Далее идет запрос на cludflare Потом идет ещё в районе 10 запросов И только потом ошибка Error: net::ERR_FAILED Это возможно клауд блокирует? Заголовки ничем не отличаются, насколько я заметил
Alhimik
Сначала идет в районе 10 запросов. Далее идет запрос на cludflare Потом идет ещё в районе 10 запросов И только потом ошибка Error: net::ERR_FAILED Это возможно клауд блокирует? Заголовки ничем не отличаются, насколько я заметил
Как я вижу речь снова о lolz guru, и у тебя уже есть пример того как они некорректно обрывают соединение если им что-то не нравится. Предположу что и сейчас та же ситуация. Ищи отличия. Скорей всего они всё же вычисляют puppeteer.
🅰️nimeCoder
при заходе просто на них?
Alhimik
Да. page.goto
Если задача просто зайти на главную страницу в хэдлес-режиме то без проблем работает. Возможно тебя по IP заблокировали?
1
Как лучше делать выбор из выпадающего меню? Через select не получится. Приходится листать клавишами Вверх-Вниз, но проблема в том, что может неправильно выбрать, то страница нормально не подгрузится, то ещё чего-то. Зацепиться не за что, при пролистывание названия пунктов нигде не вижу. только когда выбирается нужный пункт, тогда в коде страницы его видно (в голубом фоне появляется).
1
Если это кастомное меню и приходится пользоваться листанием клавишами, пункты уже должны быть. Из чего-то же ты выбираешь? Опиши подробнее проблему или сделай в песочнице рабочий образец меню.
Меню кастомное, но поймать названия пунктов на странице не могу, не находит. При нажатии на список, что-то подгружает, но куда не пойму, как найти. Поиск по странице по названиям пунктов ничего не даёт. Только когда конкретный пункт уже выбираешь, тогда появляется его название в коде.
Alhimik
Меню кастомное, но поймать названия пунктов на странице не могу, не находит. При нажатии на список, что-то подгружает, но куда не пойму, как найти. Поиск по странице по названиям пунктов ничего не даёт. Только когда конкретный пункт уже выбираешь, тогда появляется его название в коде.
Ну как обычно, проблема с асинхронностью. Например можно так: 1. После каждого нажатия проверять выбранный пункт и сравнивать с искомым. 2. Найти запрос, который уходит на сервер (если я правильно понял) для подгрузки меню и перехватывать ответ (хотя это выглядит сложнее)
Alhimik
В любом случае ты должен видеть хотя бы выбранный на данный момент пункт. Это самый простой вариант проверки.
1
В любом случае ты должен видеть хотя бы выбранный на данный момент пункт. Это самый простой вариант проверки.
Тогда это нужно на каждой раз при нажатии клавиши вверх-вниз нажимать ввод, чтобы выбрать и проверить пункт меню, там список из 15-20 пунктов, слишком долго получится все перебирать и придётся делать массив, чтобы понять в какую сторону двигаться если произошла ошибка. Похоже, простого решения нет.
Alhimik
На чём там хоть написано? Какой-то известный фрэймворк или самописноей что-то?
🦋noteee
Если задача просто зайти на главную страницу в хэдлес-режиме то без проблем работает. Возможно тебя по IP заблокировали?
У меня стоят мои cookies. Ты не против будешь, если я отправлю их тебе в лс, чтобы ты попробовал с ними?
Alhimik
У меня стоят мои cookies. Ты не против будешь, если я отправлю их тебе в лс, чтобы ты попробовал с ними?
Чужие данные не использую. Так как не знаю твои ли они или ты их где-то "взял". )
Alhimik
Ну и в любом случае тебе нужен какой-то более убедительный тест. Попробуй создать другую учётную запись и используй прокси, к примеру.
Alhimik
Если блокировок не будет, то проблема в IP/учётке.
🦋noteee
Если задача просто зайти на главную страницу в хэдлес-режиме то без проблем работает. Возможно тебя по IP заблокировали?
Действительно. Главная страница работает. Соединение обрывается уже при последующих переходах на другую страницу. Сейчас буду разбираться в этом более подробно
1
Если есть возможность скинуть ссылку на оригинал такого странного меню или сделать свой, я бы посмотрел.
Нашел, как не перебирать, при открытии списка динамически подгружает страницу и уже можно по селектору нажимать. Надо делать клик по выпадающему меню и далее уже ещё раз клик уже по id элемента
🦋noteee
А почему скриншот такой высокий? Как мобильная версия, только намного выше. Юзерагент ПК await page.screenshot({ path: "./screenshot.png", fullPage: true, captureBeyondViewport: false });
🦋noteee
fullPage: false попробуй
Скриншот будет обрезаным, а мне нужно во все окно
Alhimik
Скриншот будет обрезаным, а мне нужно во все окно
Ну если тебе не нужна вся страница то fullPage ставь в false. Тогда будет так как ты видишь в браузере. Если вьпорт правильно выставлен.
🦋noteee
Ну если тебе не нужна вся страница то fullPage ставь в false. Тогда будет так как ты видишь в браузере. Если вьпорт правильно выставлен.
А я могу окно браузера выставить 1920x1080 и использовать headless режим? Мне нужно чтобы в headless режиме скриншоты были в 1920x1080
Alhimik
А я могу окно браузера выставить 1920x1080 и использовать headless режим? Мне нужно чтобы в headless режиме скриншоты были в 1920x1080
Не окно браузера нужно настраивать а вьюпорт. Например: const browser = await puppeteer.launch({ headless: true, defaultViewport: { width: 1920, height: 1080, }, });
🦋noteee
Не окно браузера нужно настраивать а вьюпорт. Например: const browser = await puppeteer.launch({ headless: true, defaultViewport: { width: 1920, height: 1080, }, });
Спасибо большое. Проблему с обрывом соединения я решил. На lolz находится кнопка. Она делает редирект на другую страницу. Я сразу переходил на эту страницу и ловил ошибку. Теперь же я просто делаю клик по этой кнопке и все нормально
🦊 Лиса
привет, в каких случаях при setCookies({ ... }) может быть ошибка Invalid cookie fields ?
Alhimik
привет, в каких случаях при setCookies({ ... }) может быть ошибка Invalid cookie fields ?
Поищи по сообщениям, уже была у кого-то такая же проблема.
🦊 Лиса
Поищи по сообщениям, уже была у кого-то такая же проблема.
искала, все что нашла - https://t.me/puppeteer_ru/6782
Alhimik
искала, все что нашла - https://t.me/puppeteer_ru/6782
Да, я как раз про это. Не помогло?
🦊 Лиса
там название полностью апперкейсом
🦊 Лиса
без символов
Alhimik
нет
Покажи что за куки (замени приватную часть шаблоном). И что за сайт (если не приватное что-то).
🦊 Лиса
Покажи что за куки (замени приватную часть шаблоном). И что за сайт (если не приватное что-то).
хм, я щас поставила куки вручную, все поставилось а если я считываю из файла (key=value..... файл aka java properties) - invalid cookie field
🦊 Лиса
Может с кодировкой что-то. Проверь чтобы символы были допустимые.
при выводе названия в консоль вроде все нормально
🦊 Лиса
если вывожу name.split("") в консоль - лишних символов нет
Alhimik
если вывожу name.split("") в консоль - лишних символов нет
Ну какие-то символы должны быть невалидными или в ключе или в значении, иначе ошибки не было бы. Попробуй через encodeURIComponent прогнать и сравнить результат или используй регулярку для отлавливания некорректных символов.