通过 xPath Puppeteer 获取值时没有 textContent

No textContent when getting value by xPath Puppeteer

我正在尝试获取 ID 为 staked (397.497836) 的 value div 中的文本。它看起来像这样:

我正在处理元素的 xpath,它是://*[@id="staked"]

在我在 Whosebug/github 上看到的所有示例中,人们似乎能够使用 textContent 检索文本,但是我的日志记录没有显示该字段可用。

await page.waitForXPath('//*[@id="staked"]');
let handle = await page.$x('//*[@id="staked"]');
console.log(handle[0]);

 _remoteObject: {
    type: 'object',
    subtype: 'node',
    className: 'HTMLDivElement',
    description: 'div#staked.value',
    objectId: '-6241729959890640645.3.7'
  },

就上下文而言,这不是静态文本,因为我是从我的 React 组件传递它的。有什么想法可以让我以不同的方式获取文本吗?

现在您需要使用 .evaluate

从句柄中提取该值

正如 ggorlen 指出的那样,您可以使用 id:

// xpath
const el = await page.waitForXPath('//*[@id="staked"]');
const content1 = await el.evaluate(el => el.textContent);
console.log('xpath', content1);

// id
const content2 = await page.$eval("#staked", el => el.textContent);
console.log('id', content2);