sour-pinkS
Apify & Crawlee3y ago
3 replies
sour-pink

Details are not revealed after clicking the button using puppeteer.

I have tried below code to get some hidden details after button click. After clicking the button, new divs popped out and show some additional details in page. Then there should be 12 elements but code results show only 8 elements which already visible before button click.

const addTitleSelector = 'h1.TextHeadline3TextHeadline3Wrapper-sc-10e1s2p-0';
const vehiclePriceSelector = '.TextHeadline2
TextHeadline2Wrapper-sc-1itsg3n-0';
const vehicleParameterSelector = '.ExpandableContentContent-sc-11a0rym-0 .ParamsWithIconsWrapper-sc-hanfos-0 .TextCallout1TextCallout1Wrapper-sc-swd73-0';
const vehicleParametersExtendButtonSelector = 'button.ExpandableContent
StyledShowMoreButton-sc-11a0rym-2';

router.addDefaultHandler(async ({ request, page, log }) => {
const title = await page.title();
log.info(
${title}
, { url: request.loadedUrl });

const adTitle = await page.$eval(addTitleSelector, (item) => item.textContent);
const vehiclePrice = await page.$eval(vehiclePriceSelector, (item) => item.textContent);

await page.waitForSelector(vehicleParametersExtendButtonSelector);
await page.click(vehicleParametersExtendButtonSelector);
await page.waitForSelector(vehicleParameterSelector);
const vehicleParameters = await page.$$eval(vehicleParameterSelector, (items) => items.length)

await Dataset.pushData({
url: request.loadedUrl,
pageTitle: title,
adTitle,
vehiclePrice,
vehicleParameters
});
});
Was this page helpful?