В Puppeteer, как я могу получить innerHTML селектора? - PullRequest
0 голосов
/ 03 сентября 2018

На данный момент я пытаюсь сделать следующее:

const element = await page.$("#myElement");
const html = element.innerHTML;

Я ожидаю, что HTML будет напечатан, но вместо этого я получаю undefined.

Что я делаю не так?

1 Ответ

0 голосов
/ 03 сентября 2018

page.evaluate ():

Вы можете использовать page.evaluate(), чтобы получить innerHTML элемента:

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

console.log( inner_html );

elementHandle.getProperty () / .jsonValue ():

В качестве альтернативы, если вы должны использовать page.$(), вы можете получить доступ к innerHTML, используя комбинацию elementHandle.getProperty() и elementHandle.jsonValue():

const inner_html = await ( await ( await page.$( '#myElement' ) ).getProperty( 'innerHTML' ) ).jsonValue();

console.log( inner_html );
...