[英]ReferenceError: document is not defined although I am using puppeteer
如您所見,我添加了 puppeteer,但總是出現錯誤。 我正在嘗試使用 getElementById 函數來操作我的 html 前端。
const puppeteer = require('puppeteer');
(async function getPrice(){
let URL= 'https://www.coingecko.com/en/coins/synthetix-network-token';
let browser = await puppeteer.launch();
let page = await browser.newPage();
await page.goto(URL, {waitUntil: 'networkidle2'});
let data = await page.evaluate(() => {
try {
let price=document.querySelector('div[class="text-3xl"] > span').innerText;
return {
price
}
}catch(err) {
reject(err.toString());
}})
console.log(Object.values(data));
document.getElementById("snxprice").innerHTML = Object.values(data);
await browser.close();
}().catch(function(error) {
console.error('Document is not defined!');
process.exit();
});
這一行: document.getElementById("snxprice").innerHTML = Object.values(data);
在 puppeteer 中無效。
每次需要 DOM 文檔(需要評估頁面上下文)時都必須使用page.evaluate
,如下所示:
await page.evaluate(data => {
const element = document.querySelector('#snxprice')
element.innerHTML = Object.values(data)
}, data)
注意: #snxprice
很可能在 iframe 內,因為#snxprice
無法在頁面中找到它。 所以你最終需要的是frame.evaluate 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.