代码之家  ›  专栏  ›  技术社区  ›  Harrison

xPath Puppeter获取值时没有文本内容

  •  0
  • Harrison  · 技术社区  · 4 年前

    我想把文字放在我的电脑里 value 有身份证的div staked (397.497836). 看起来是这样的:

    enter image description here

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

    在我在stackoverflow/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组件传递它。有什么办法可以让我用不同的方式来获取文本吗?

    0 回复  |  直到 4 年前
        1
  •  0
  •   traynor    4 年前

    现在,您需要使用 .evaluate

    正如戈伦指出的,你可以使用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);
    
    推荐文章