I am using puppeteer to scrape some images off a site along with some other data. To change images I need to hover over a list item. I keep coming across documentation around .hover() but have had no success. However, .click() works perfectly for another part of my scrape.
const pptr = require('puppeteer');
async function scrapeProduct(productID) {
const browser = await pptr.launch();
const page = await browser.newPage();
await page.goto(`https://someplace.com`);
let scrapeData = await page.evaluate(async () => {
let productMap = [];
//scrape other data...
const imageItems = document.querySelectorAll('ul[class="images-view-list"] > li > div');
for (let image of imageItems) {
await image.hover();
productMap.push({
'Image Src': document.querySelector('div[class="image-view-magnifier-wrap"] > img').getAttribute('src'),
});
}
return productMap;
});
await browser.close();
return scrapeData;
}
I've seen solutions where you evaluate a page with executing the hover prior. This is inconvenient as I collect many other data points and would like to keep my solution clean in one evaluate request. Am I understanding .hover() incorrectly?