[英]Why am I getting Promise { <pending> } when using fetch in Promise.all?
[英]Why am I getting Promise { Pending }?
我正在使用 puppeteer 在 Javascript 中開發 web 刮板,每當我嘗試記錄元素的文本內容時,它都會顯示“Promise { Pending }”。 我看過其他答案,但沒有一個有效
const element = await page.$("#ctl00_ContentPlaceHolder1_NameLinkButton");
const text = await page.evaluate(element => element.textContent, element);
console.log(text);
你的答案是正確的。 但我認為您忘記在page.evaluate()
之前添加await
。
有三種方法可以做到這一點。
page.evaluate()
來獲取.textContent
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const elementId = 'container';
const page = await browser.newPage();
await page.goto('https://metwally.me');
const element = await page.$(`#${elementId}`);
if (element) {
const text = await page.evaluate(element => element.textContent, element);
console.log(text);
} else {
// handle not exists id
console.log('Not Found');
}
});
page.evaluate()
並使用 JavaScript Dom 來獲取textContent
。 像document.getElementById(elementId).textContent
。const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const elementId = 'container';
const page = await browser.newPage();
await page.goto('https://metwally.me');
const text = await page.evaluate(
elementId => {
const element = document.getElementById(elementId);
return element ? element.textContent : null;
}, elementId);
if (text !== null) {
console.log(text);
} else {
// handle not exists id
console.log('Not Found');
}
});
await element.getProperty('textContent')
獲取textContent
屬性,然后從textContent._remoteObject.value
獲取值。const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const elementId = 'container';
const page = await browser.newPage();
await page.goto('https://metwally.me');
const element = await page.$(`#${elementId}`);
if (element) {
const textContent = await element.getProperty('textContent');
const text = textContent._remoteObject.value;
console.log(text);
} else {
// handle not exists id
console.log('Not Found');
}
});
注意:所有這些示例都在我的機器上成功運行。
os ubuntu 20.04
nodejs v10.19.0
puppeteer v1.19.0
參考
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.