isa
https://stackoverflow.com/questions/43422932/async-await-always-returns-promise#:~:text=Every%20async%20function%20returns%20a%20Promise%20object.&text=Using%20await%20will%20make%20your,When%20you%20use%20.
isa
maybe can help with reformating my code please?
im at now phone later i can try for you
isa
Maybe it is run
isa
Console.log(await message)
isa
Can u try haha :)
Victor
Console.log(await message)
still the same haha
Назар
Как заставить stealth plugin работать с хромом в browserless докере?
Назар
Какая ошибка? Там headless headful?
ошибок нет, оно просто не работает
Anonymous
Назар
ничего нету. Просто будто я плагин и не включал
Назар
вот как с коннектом
Назар
вот без
Назар
вот код. Менялся только запуск
Anonymous
вот код. Менялся только запуск
плагин обновлён до последней версии? там много меняли. да, какая лажа. а что в args у тебя?
Назар
Назар
версия 2.6.1
Anonymous
убери --deny-perm 2.6.1 это старая, её пробили давно, тогда ещё этот чел болел. сейчас вроде 2,7,5
Назар
вечером попробую в пустой стреде повторить
Anonymous
последняя версия тоже пробитая. я им там несколько багов подправил, может на неделе зарелизят. но есть ещё много проблем там, к сожалению
Назар
не думаю, что то что ты написал поможет В коннект нету args. И вряд ли в новой версии сделали поддержку коннект
Anonymous
ну хз, с browserless не работал. то что там юзер агент линуксовый, это был баг, пара недель назад его закрыли.
Назар
думаю browserless или просто уже открытый хром в режиме ремоут разницы нет. Ну я попробую
Anonymous
вот без
это точно без stealth? ты ничего не перепутал?
Назар
это точно без stealth? ты ничего не перепутал?
это с ним, но когда я делаю лаунч. А перед ним скрин с, но когда делаю коннект.
Anonymous
вот без
ну вот прям очень похоже на stealth 5-ти месячной давности. permission prompt это был баг, его недавно исправили, iris opengl это тоже был баг в stealh. на эти 2 бага многие проверяли и банили.
Назар
как по мне это похоже на просто без стелса
Anonymous
вот без
ну вот это сто пудов stealth )) permission default это только в stealth было это ошибка berstend'а
Anonymous
https://github.com/berstend/puppeteer-extra/pull/429/files
Назар
вот как с коннектом
и это со стелс в режиме коннекта. Как я понимаю не работает стелс в этом режиме вообще
Назар
да
Назар
ну вот это сто пудов stealth )) permission default это только в stealth было это ошибка berstend'а
не работает стелс. "puppeteer": "^8.0.0", "puppeteer-extra": "^3.1.17", "puppeteer-extra-plugin-stealth": "^2.7.5"
Назар
` import puppeteer from 'puppeteer-extra' import StealthPlugin from 'puppeteer-extra-plugin-stealth' puppeteer .use(StealthPlugin()) // .launch() .connect({browserWSEndpoint: 'ws://localhost:3100'}) .then(async browser => { const page = await browser.newPage() await page.goto('https://bot.sannysoft.com') await page.waitFor(5000) await page.screenshot({ path: 'stealth.png', fullPage: true }) await browser.close() }) `
Назар
Хотя нет, Он РАБОТАЕТ, просто очень хреново.
Назар
вот вообще без него
Назар
вот с ним
Sasha
Как не работает?))) Headless нету)
Игорь
Error: Could not find browser revision 818858. Run "PUPPETEER_PRODUCT=firefox npm install" or "PUPPETEER_PRODUCT=firefox yarn install" to download a supported Firefox browser binary. node2_1 | at ChromeLauncher.launch (/usr/src/app/node_modules/puppeteer/lib/cjs/puppeteer/node/Launcher.js:79:23)
Игорь
все пробовал не помогает
Игорь
кто сталкивался
Sasha
Error: Could not find browser revision 818858. Run
Игорь
гуглил ставил пакеты
Игорь
прописывал путь к браузеру
Sasha
раз так давай кусок вызова
Sasha
если все поставлено и добавлен путь до вызова то должно работать
Игорь
Разобрался
Игорь
Нужно десяток страниц парсить приходит запрос со списком страниц
Doc
всем привет!Начал проповать puppeteer,столкнулся с проблемой запуска браузера с extension(metamask)
Doc
const customArgs = [ --start-maximized, --disable-extensions-except=${source}, --load-extension=${source} ]; browser = await puppeteer.launch({ defaultViewport: null, executablePath:process.env.chrome, headless: false, , args: customArgs, });
Doc
let source = 'C:/Users/.../extension_9_0_5_0.crx';
Doc
получаю ошибку - failed to load manifest file
Игорь
Goto в цикле делать на один инстанс браузера или как
Назар
получаю ошибку - failed to load manifest file
ну видимо оно хочет незапакованное расширение.
Alex*
Goto в цикле делать на один инстанс браузера или как
promises.push(browser.newPage().then(async page => { .... } await Promise.all(promises)
Doc
ну видимо оно хочет незапакованное расширение.
да, скопировал распакованное расширение из хрома и заработало. Спасибо!
1
Подскажите, как дождаться завершения обновления данных после выбора Option? Выбор идёт один за одним, т.е. первый выбор обновляет последующее выпадающее меню и т.к. Тупо ставить waitFor() не очень после каждого выбора, т.к. сайт может тормозить и просто время проходит. Пробовал await page.select('#MissionId', '24', { waitUntil: 'networkidle0' }) и await Promise.all([ page.select('#MissionId', '24'), page.waitForNavigation({ waitUntil: 'networkidle0', }), ]); ничего не помогает.
John
А там данные обновляются через xhr?
1
А там данные обновляются через xhr?
Ага, POST/GET запросы отправляет/получает в JSON
Doc
подскажите чайнику, как найти элемент по xpath ? не работает await page.click('//*[@id="gb"]/div/div[2]/a')
Doc
такоу тоже не работает const button = await page.$x('//*[@id="gb"]/div/div[2]/a') await button.click()
Назар
подскажите чайнику, как найти элемент по xpath ? не работает await page.click('//*[@id="gb"]/div/div[2]/a')
вроде есть метод вроде page.xpath(‘selector’). Потом в зависимости от того возвращает он один элемент или массив await el.click()
Doc
page.xpath(‘selector’) нет такого метода
Назар
page.$x(‘selector’)
Doc
да, спасибо
Doc
после Java+ Selenium весь этот puppeteer+nodejs выглядит как анархическая куча мусора )
John
1
https://www.npmjs.com/package/pending-xhr-puppeteer
Спасибо, что-то не помогает, не ожидает завершения xhr запроса, тупо начинает следующую команду. Два разных варианта попробовал: const page = await browser.newPage(); const pendingXHR = new PendingXHR(page); await page.select('#MissionId', '24'); await pendingXHR.waitForAllXhrFinished(); //await pendingXHR.waitOnceForAllXhrFinished();
Phil
Доброго времени суток, господа и дамы) Такой вопрос, а можно с помощью Puppeteer очищать метаданные скриншота? Вопрос уже не актуален
Eugene
Привет. ребят, можно как-то зааставить работать функцию type печатать иначе? Чтобы были паузы между нажатиями, чтобы это больше походило на human
Eugene
А фиг его знает
Egor
type(‘selector’, ‘text’, {delay: 20})
А, вот блестящее решение кажись
Назар
так же такой параметр есть у клика и тд