Назар
Ребят, есть на странице блок с кнопкой, типа принять куки. И в принципе я не знаю когда он вылезет. Как правильней детектить его появления и останавливать на время скрипт, пока я нажимаю на кнопку в блоке?
Unknown
кек, как это так, не знаете когда вылезет?
Unknown
так же можно посмотреть, что изменяется когда вы его применяете (мб там в session storage сетается, или у cookies) и делать это при старте вашего браузера/тесты. Тем самым избавитесь от лишнего клика.
Vlad Vaviloff
Или просто убирать его после открытия страницы.
Suicide Liza
может ктото знает как можно получить parent element ? с page.$$ ?
Suicide Liza
const child = page.$(select) cont parent = child.$(?)
Eugene
Ребят, привет. Кто-то в курсе можно ли в headless режиме работать с webrtc?
Назар
вот есть такой код. Через evaluate работает, а тот что комментом нет. Они идентичны или нет?
isa
Hi can i ask question about puppeteer with latin character cuz i cant write ur alphabet :/
John
кто то с таким сталкивался? https://qna.habr.com/q/884139
John
хотелось бы запустить браузер и через апи создавать странички и обрабатывать их, а не запускать браузер вновь и вновь
Egor
кто то с таким сталкивался? https://qna.habr.com/q/884139
Не закрывай браузер, а закрывай страницы
John
наверное не верно объяснил хочется чтобы при обращении через express не открывался новый экземпляр браузера, а оставался тот же, сейчас вот так работает
John
а хотелось бы так
John
единожды запустил и открывай закрывай себе странички
John
решил таким путём единожды запускается экземпляр хромиума с флагом --remote-debugging-port=порт далее подключаемся к браузеру и делаем нужное надо будет затестить как поведет себя когда много параллельных запросов будет, хотя наверное забью и так оставлю :) зато не будет больше постоянно перезаходить на сайт, скорее всего пропишу обновление странички, чтобы поддерживало соединение и не выкидывал с сайта по таймауту
Sasha
Иногда все же придется рестартить) сожрет всю память
John
когда не дают апи, а данные нужно получать или вносить, приходится пользоваться тем что есть.. а еще там гост браузеры и сертификаты, поэтому иначе никак, ну или я не придумал потом экспрессом уже пишешь своё апи и загоняешь или получаешь данные с сайта
1
Подскажите, как сделать скриншот элемента, чтобы осталась открытая страница. При выполнении: const el = await page.$('#Image'); el.screenshot({ path: 'img.png'}); в браузере открывается данный элемент, а нужно оставаться на странице, где этот элемент находится.
1
Подскажите, после нажатия кнопки всплывает dialog после чего скрипт замирает и не получается нажать кнопку "ОК" вот так: await page.on('dialog', async dialog => { await dialog.accept(); }); Пока вручную не нажмёшь "ОК" скрипт не проходит дальше, т.е. ожидает нажатия кнопки и только после этого выполняется код нажатия кнопки.
Andrey
await перед page.on убери для начала
1
await перед page.on убери для начала
Убирал, но даже до этого момента не доходит
Andrey
больше кода, не понятно как и что ты делаешь кроме этого
Andrey
тут ты просто Event назначаем
Andrey
dialog вообще браузерный всплывает?
1
больше кода, не понятно как и что ты делаешь кроме этого
Код следующий: console.log('Press Submit'); await page.click('#submitbuttonId'); // Тут замираем, дальше не идём console.log('Press Ok dialog'); page.on('dialog', async dialog => { console.log('Dialog inside'); await dialog.accept(); }); dialog браузерный
Andrey
перенеси вверх page.on
Andrey
это ты назначаешь обработчик Event'а
Andrey
а не код последовательный выполняешь
Sasha
Видимо последовательно. Раз сообщение об успехе
Andrey
т.е. у тебя выполняется так: 1. кликаешь кнопку 2. Появляется диалог 3. Выставляешь для диалога обработчик
1
перенеси вверх page.on
Т.е. до начала нажатия кнопку Submit?
Andrey
да, в самое начало
Andrey
можешь прям после создания page
1
да, в самое начало
Спасибо, помогло! Теперь понял в чём дело.
Andrey
👍
isa
sure man, go ahead 😄
Haha thnx can i prevent json stringify when im sending object to exposefunction. But its getting args as serialized.
Vlad Vaviloff
Haha thnx can i prevent json stringify when im sending object to exposefunction. But its getting args as serialized.
Probably not, but could you make a new questions here? With a minimal code sample and object description, so that it's easier to have a look at the issue.
Sasha
Доброго дня. В headless режиме не создается localstate это норма?
Victor
Hi everyone
Victor
Need a little help here
Victor
Victor
been trying to get the message of the alert pop up
Victor
but the return always objec
Victor
isa
U can log only message object without any string then check which key is important for you...
isa
Console.lot("diyalog message"+ message[key])
isa
Console.log(message)
isa
Can u try it?
isa
Send ss
Victor
Victor
yeah, i get this
isa
No dont use string. Js is joining string + object... İts wrong. U should join same type in console.log
isa
Or console.log("diyalog message", message)
Victor
Victor
i get this response
isa
i didnt read puppeteer documantion about dialog. U can read documantion which props or func is useful for you. i think u wanna get text message of dialog. Am o right?
isa
am i right?
Victor
I have tried it before here
Victor
Victor
And it work perfectly fine
Victor
But when i changed it to this, it returns object
isa
Because await convert to async func dialog.message
isa
U can read message with await keyword or then ().catch block
Victor
checkLoginProblem: async () => { try { let message = await page.on('dialog', async dialog => { let dialogMessage = await dialog.message(); await dialog.dismiss(); return dialogMessage }) // message = JSON.stringify(message) console.log(message); if (message == null) { return false } return message } catch (e) { console.log(e.message) } },
Victor
a little bit help maybe? 🙏
isa
Can u remove await keyword from ley dialogmessage =await dialog.message()
isa
Await is converting to promise ur value
Victor
Await is converting to promise ur value
so is the problem the async above?
isa
No u can read data with using again await message or message.then()
isa
Ur returned value is promise
isa
Not string
Victor
okay, im super confused 😂
isa
Haha maybe i can not explain with my bad language haha