artem
что-то это выглядит не надежно
artem
да так достать точно не получится(
artem
ура ура я смог
artem
artem
ребята
artem
я хочу приладить к пупетиру прокси
artem
какие прокси брать?
artem
ipv 6
artem
или ipv 4
Andrey
ipv6 многие сайты не поддерживают
Alexander
Был ли у кого-то опыт тестирования веб и десктопного приложения на electron с кукловодом, можете подсказать плюсы и минусы?
Gerrra
Gerrra
вторая страница берется от сюда:
const pages = await bro.pages();
const secondPage = pages[2];
Alhimik
Andrey
Alhimik
Обычно первой (индекс 0) не пользуются, поэтому у него первая это с индексом 1, а вторая с индексом 2.
Gerrra
Andrey
Alhimik
element - элемент, по которому делают клик, чтобы открыть страницу:
const [popup] = await Promise.all([
new Promise(resolve => page.once('popup', resolve)),
element.click(),
]);
Gerrra
Я не могу просто await другая страница.waitFor()?
Alhimik
серьезно? не знал
По умолчанию страница одна уже открыта, и после newPage() получается что пользуются второй (индекс 1). Чтобы пользоваться первой (индекс 0) нужно сделать так:
const [page] = await browser.pages();
Gerrra
Alhimik
Gerrra
Такс
Gerrra
throw new Error('Evaluation failed: ' + helper_js_1.helper.getExceptionMessage(exceptionDetails));
^
Error: Evaluation failed: ReferenceError: seeAdd is not defined
at puppeteer_evaluation_script:13:9
at ExecutionContext._evaluateInternal (C:\Users\User\node_modules\puppeteer\lib\cjs\puppeteer\common\ExecutionContext.js:221:19)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async ExecutionContext.evaluate (C:\Users\User\node_modules\puppeteer\lib\cjs\puppeteer\common\ExecutionContext.js:110:16)
at async getPic (C:\Users\User\Desktop\Test\scrape.js:60:3)
Вообще не понимаю на что оно жалуется
Gerrra
функция для того, чтобы выполнялось все одновременно
Alhimik
Ты пытаешься внутри evaluate вызвать функцию seeAdd, которая находится в контексте Node.js.
Gerrra
Такс
Gerrra
А так?
Gerrra
await page[r].evaluate(() => {
const btns = [...document.querySelectorAll('.work-serf .serf-text')]
.filter(el => el.innerText.includes('10 сек'))
.map(el => el.parentNode.parentNode.previousElementSibling.querySelector('div > span'));
})
i = 0;
for (const btn of btns)
{
if (i < 1)
{
i++;
seeAdd(btn, r);
}
}
Gerrra
Как мне сделать btns глобальным для функции?
Alhimik
Alhimik
// Находишь кнопку
const btn = await page.waitForXPath("<SELECTOR>");
// Делаешь клик и ждёшь открытия новой страницы
const [popup] = await Promise.all([
new Promise(resolve => page.once('popup', resolve)),
btn.click(),
]);
// Работа с открытой страницей
await popup.waitForXPath("<SELECTOR>");
Alhimik
Дальше всё как обычно.
Gerrra
Gerrra
Alhimik
Так сказали делать )
В общем случае так можно делать, но тебе нужно ловить момент открытия страницы, поэтому в данном случае только в контексте ноды.
Gerrra
Alhimik
Gerrra
Без кого?
без await page[r].evaluate(() => {
Alhimik
Например через waitForXPath, waitForSelector и другие.
Gerrra
Gerrra
#start-ads-203227 > span:nth-child(1)
Gerrra
Номер разный
Gerrra
for (const frameLvl1 of needPage.frames())
выкидывает так же ошибку
Alhimik
Номер разный
Например так можно:
await page.waitForSelector("//div[starts-with(@id, 'start-ads-')]/span[2]");
Gerrra
Gerrra
const btn = await page.waitForXPath("//div[starts-with(@id, 'start-ads-')]/span[2]");
^
TypeError: page.waitForXPath is not a function
Alhimik
Gerrra
Не работает
Gerrra
Оно не кликает на кнопки
Gerrra
await page[r].evaluate(() => {
const btns = [...document.querySelectorAll('.work-serf .serf-text')]
.filter(el => el.innerText.includes('10 сек'))
.map(el => el.parentNode.parentNode.previousElementSibling.querySelector('div > span'));
for (const btn of btns)
{
btn.click();
btn.click();
btn.click();
}
})
Gerrra
Вот эта штука работала ксати
Gerrra
но она с evaluate
Gerrra
А это не удобно
artem
подскажите пожалуйста какие прокси нужны пупетиру
artem
почему все прокси которые я купил выглядят так
Светлана
Возможно потому что в коде Тени page это твоё page[r]?
Светлана
Светлана
Если угадала - не благодари
Gerrra
Alhimik
Alhimik
https://t.me/puppeteer_ru/6504
artem
та я вот сам не знаю
artem
сначала 1 купил коекак биткоином
artem
7к потратил пока конвертировал
artem
и их для апи нельзя использовать
artem
😅
artem
потом другие
artem
дешевые
artem
вроде разобрался