Puppeteer: Get innerHTML Puppeteer: Get innerHTML selenium selenium

Puppeteer: Get innerHTML


This is how i get innerHTML:

page.$eval(selector, (element) => {  return element.innerHTML})


Returning innerHTML of an Element

You can use the following methods to return the innerHTML of an element:

page.$eval()

const inner_html = await page.$eval('#example', element => element.innerHTML);

page.evaluate()

const inner_html = await page.evaluate(() => document.querySelector('#example').innerHTML);

page.$() / elementHandle.getProperty() / jsHandle.jsonValue()

const element = await page.$('#example');const element_property = await element.getProperty('innerHTML');const inner_html = await element_property.jsonValue();

Clicking an Element with Specific innerHTML

You can use the following methods to click on an element based on the innerHTML that is contained within the element:

page.$$eval()

await page.$$eval('.example', elements => {  const element = elements.find(element => element.innerHTML === '<h1>Hello, world!</h1>');  element.click();});

page.evaluate()

await page.evaluate(() => {  const elements = [...document.querySelectorAll('.example')];  const element = elements.find(element => element.innerHTML === '<h1>Hello, world!</h1>');  element.click();});

page.evaluateHandle() / elementHandle.click()

const element = await page.evaluateHandle(() => {  const elements = [...document.querySelectorAll('.example')];  const element = elements.find(element => element.innerHTML === '<h1>Hello, world!</h1>');  return element;});await element.click();


This should work with puppeteer:)

const page = await browser.newPage();const title = await page.evaluate(el => el.innerHTML, await page.$('h1'));