Estoy intentando escribir un sitio web con javascript que extrae datos de otro sitio web usando titiritero. Puedo imprimir el valor en una consola, pero no sucede nada cuando intento establecer el resultado en un elemento html. ¿Hay algo mal con mi código? El código HTML que lo llama está debajo del código javascript.
function sleep(miliseconds) { var currentTime = new Date().getTime(); while (currentTime + miliseconds >= new Date().getTime()) {} } async function scrapeProduct(url) { const puppeteer = require('puppeteer'); const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(url); sleep(1000); const [el] = await page.$x('//*[@id="resultTable"]/tbody/tr[1]/td[2]/div/div[1]/font[1]'); const txt = await el.getProperty('innerHTML'); const rawTxt = await txt.jsonValue(); browser.close(); return rawTxt; } function runScript() { scrapeProduct('https://www.purpleair.com/sensorlist?key=HIGZAD9XGVDEMVVZ&show=37253') .then(function(result) { //console.log(result); document.getElementById("p1").innerHTML = result; }); } runScript() <html> <head> <script type="text/javascript" src="purpleAir.js"></script> </head> <body> <title>Test</title> <h1></h1> <p id="p1">Hello World!</p> <script> runScript() </script> <form> </form> </body> </html>