我正在使用木偶戏试图截取一个网站的截图,但首先我必须按一个名为“Lifetime”的按钮,其选择器是:
#profile > div.trn-profile.dtr-profile > div > div.content > div:nth-child(1) > div.material-card > a.btn.btn-season.selected
我必须首先向下滚动按下生命周期按钮并截取“solo”,“duo”和“squad”统计数据的截图:
我在非无头模式下尝试这一点,以确保它的工作原理,但它似乎没有工作。我有我的代码,它将向下滚动到元素但不使用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模块裁剪它,所以主要是我必须弄清楚如何按下按钮
编辑:我是一个白痴我正在使用错误的选择器我的坏:))
答案 0 :(得分:0)
我使用了错误的选择器我应该使用的是:
#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();
答案 1 :(得分:0)
await page.$eval('section[class="promocode__segment"]',
e => {e.scrollIntoView({ behavior: 'smooth', block: 'end', inline: 'end' })})