【问题标题】:How to get multiple values within an li如何在一个li中获取多个值
【发布时间】:2021-01-07 01:15:55
【问题描述】:

我正在与 Playwright 合作抓取一个目录。我能够像这样获得每个“块”内容:

let nestedElementsToCapture = ['.title', '.subhead', '#url']
    this.page.$$eval('li', (spans) =>
        spans.map((span) => span.innerText)
    );

我想不通的是如何在每个“块”中获取定义的嵌套元素。

例如: li > .title, li > .subhead, li > #url

我将如何为每个块捕获这些元素?现在我得到的只是一大串文本,其中包含每个 li 中的所有文本

【问题讨论】:

    标签: javascript node.js webautomation playwright


    【解决方案1】:

    我会将该数组传递给$$eval 函数,解决该函数内的所有问题,然后返回某种对象。
    我将参数名称设置为childSelectors,所以很明显你无法访问函数内部的nestedElementsToCapture变量。

    let nestedElementsToCapture = ['.title', '.subhead', '#url']
    this.page.$$eval(
       'li', 
        (spans, childSelectors) => {
            return spans.map((span) => {
                let result = { 
                    title = span.querySelector(childSelectors[0]).innerText,
                    subHead = span.querySelector(childSelectors[1]).innerText,
                    url = span.querySelector(childSelectors[2]).innerText,
                };
          
                return result;
            });
        },
        nestedElementsToCapture);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 2022-11-27
      相关资源
      最近更新 更多