Делаю парсер для анализа цен на товары в интернет-магазинах, начал с озона и не нажимается кнопка поиска, хотя все классы правильно прописал, всё правильно сделал, не понимаю чего не так, чего пропустил вообще
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless:false});
const page = await browser.newPage();
await page.goto('https://www.ozon.ru/', {waitUntil: 'load'});
await page.screenshot({path: 'test1.png'});
await page.waitForSelector('.f9j5');
await page.evaluate(() => {
const email = document.querySelector('.f9j5');
console.log(email);
email.value = 'Санки';
});
await page.click('button.f9k');
await page.screenshot({path: 'test2.png'});
await page.waitForSelector('.ui-b3.ui-c.ui-b5.ui-f3');
const text = await page.evaluate(() => {
const anchor = document.querySelector('.ui-b3.ui-c.ui-b5.ui-f3');
return anchor.textContent;
});
console.log(text);
await page.screenshot({path: 'test3.png'});
await browser.close();
})();
Т.е название в поле поиска вводится но кнопка по какой-то причине не нажимается
update:
Кнопка всё-таки нажимается но поиск не проходит
Т.е текст в инпуте поиска есть и кнопка нажимается но поиск не идёт
Как понял в озоне, пока пытаюсь понять в чём конкретно
upd2:
Как понял, надо просто было имитировать ввод текста, а не просто его вставлять
Вот такой код работает:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless:false});
const page = await browser.newPage();
await page.goto('https://www.ozon.ru/', {waitUntil: 'load'});
await page.screenshot({path: 'test1.png'});
await page.waitForSelector('.f9j5');
await page.click('.f9j5');
await page.waitForTimeout(2000);
await page.keyboard.type("Санки", {delay: 100});
await page.click('button.f9k');
await page.screenshot({path: 'test2.png'});
await page.waitForSelector('.ui-b3.ui-c.ui-b5.ui-f3');
const text = await page.evaluate(() => {
const anchor = document.querySelector('.ui-b3.ui-c.ui-b5.ui-f3');
return anchor.textContent;
});
console.log(text);
await page.screenshot({path: 'test3.png'});
await browser.close();
})();