На данный момент я пытаюсь сделать следующее:
const element = await page.$("#myElement"); const html = element.innerHTML;
Я ожидаю, что HTML будет напечатан, но вместо этого я получаю undefined.
undefined
Что я делаю не так?
Вы можете использовать page.evaluate(), чтобы получить innerHTML элемента:
page.evaluate()
innerHTML
const inner_html = await page.evaluate( () => document.querySelector( '#myElement' ).innerHTML ); console.log( inner_html );
В качестве альтернативы, если вы должны использовать page.$(), вы можете получить доступ к innerHTML, используя комбинацию elementHandle.getProperty() и elementHandle.jsonValue():
page.$()
elementHandle.getProperty()
elementHandle.jsonValue()
const inner_html = await ( await ( await page.$( '#myElement' ) ).getProperty( 'innerHTML' ) ).jsonValue(); console.log( inner_html );