Ya que estoy tratando de obtener la propiedad HTML para un elemento sin clase o ID
<span style="color: green">content</span>Estoy usando el selector $x:
const [data] = await page.$x('/html/body/div[2]/div/div/div[2]/div[1]/div/div/div[5]/div/div/table/tbody/tr/td[2]/table[1]/tbody/tr[2]/td[2]/span'); const style = await data.getProperty('style'); const pureStyle = await style.jsonValue(); Pero cuando hago console.log pureStyle recibo como respuesta:
{ '0': 'color' }Hay una manera más simple. Puede obtener el lapso con document.querySelectorAll() . Con esto, tendrás una lista. Por ejemplo, no sé qué page.$x , tal vez devuelva lo mismo.
Después, tienes que conseguir todo el estilo con style (lo que haces con getProperty ). Por ejemplo, si desea que solo se escriba contenido css en el html, debe usar cssText y funcionará bien.
Ejemplo:
var span = document.querySelectorAll("div div div span"); for(var element of span) { console.log(element.style.cssText); } <div> <div> <div> <span style="color: green; margin: 0;">span</span> </div> </div> </div>