0

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

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

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

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

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

4

1 回答 1

-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);
于 2020-09-21T12:16:48.117 回答