Search code examples
javascriptnode.jspuppeteer

Puppeteer - Removing elements by class


I try to remove elements by classname but it doesn't work.

This is the code i used:

await page.screenshot({path: 'pic.png'});   //for testing purposes
    let div_selector_to_remove= ".xj7.Kwh5n";
    var thingToRemove = document.querySelectorAll(div_selector_to_remove);
    var number_of_elements = thingToRemove.length;
    for (var i = 0; i < number_of_elements.length; i++) {
        thingToRemove[i].parentNode.removeChild(thingToRemove);
    }

The browser loads and i get a screenshot with the elements loaded. The nothing happens. The elements remain there


Solution

  • Run document.querySelector inside page.evaluate. Here's my answer:

    await page.goto('<url_here>');
    let div_selector_to_remove= ".xj7.Kwh5n";
    await page.evaluate((sel) => {
        var elements = document.querySelectorAll(sel);
        for(var i=0; i< elements.length; i++){
            elements[i].parentNode.removeChild(elements[i]);
        }
    }, div_selector_to_remove)