свиток кукольника и нажмите кнопку

Я использую кукловод, чтобы попытаться сделать снимок экрана веб-сайта, но сначала мне нужно нажать кнопку под названием «Время жизни», ее селектор:

#profile > div.trn-profile.dtr-profile > div > div.content > div:nth-child(1) > div.material-card > a.btn.btn-season.selected

Мне нужно сначала прокрутить вниз, нажать кнопку времени жизни и сделать снимок экрана со статистикой "соло", "дуэт" и "отряд", например:

целевая фотография:

Я пробую это в режиме без головы, чтобы убедиться, что он работает, но, похоже, он не работает. У меня есть код до точки, где он будет прокручиваться до элемента, но не щелкать его с помощью page.click (SELECTOR). до сих пор мне удалось открыть веб-страницу и прокрутить вниз, но когда я пытаюсь использовать page.click, это не работает. Я побеспокоюсь о снимке экрана позже, когда пойму, как нажимать кнопку "срок действия"

мой код:

var puppeteer = require('puppeteer');

let scrape = async () => {

const browser = await puppeteer.launch({
    headless: false
});

const page = await browser.newPage();

await page.goto('https://fortnitetracker.com/profile/pc/Twitch.BadGuyBen');
await page.tap('#profile > div.trn-profile.dtr-profile > div > div.content > div:nth-child(1) > div.material-card > a.btn.btn-season.selected');
await page.waitFor(2000);

await page.screenshot({
    path: 'stats.png',
    fullPage: true
})

browser.close();
};

scrape();

РЕДАКТИРОВАТЬ: я сделаю полноэкранный снимок экрана страницы, а затем использую модуль jimp, чтобы обрезать его, поэтому в основном мне нужно выяснить, как нажимать кнопку

РЕДАКТИРОВАТЬ: я идиот, я использовал неправильный селектор, мой плохой :)


person Ben W    schedule 28.03.2018    source источник


Ответы (2)


Я использовал неправильный селектор, который я должен был использовать:

#profile > div.trn-profile.dtr-profile > div > div.content > div:nth-child(1) > div.material-card > a:nth-child(2)

так что мой код для людей:

var puppeteer = require('puppeteer');

let scrape = async () => {

const browser = await puppeteer.launch({
headless: false
});

const page = await browser.newPage();
var SELECTOR = "#profile > div.trn-profile.dtr-profile > div > div.content > div:nth-child(1) > div.material-card > a:nth-child(2)";

await page.goto('https://fortnitetracker.com/profile/pc/Twitch.BadGuyBen');
await page.focus(SELECTOR);
await page.waitFor(2000);
await page.click(SELECTOR);

await page.screenshot({
    path: 'stats.png',
    fullPage: true
})

browser.close();
};

scrape();
person Ben W    schedule 29.03.2018

person    schedule
comment
Кратко объясните, как это помогает. Спасибо! - person applecrusher; 25.08.2020