访问 puppeteer 中的子元素

The*_*asn 1 javascript webautomation puppeteer

我有以下 HTML 结构

<div class ="container" id= "12">
    <div class="details" desc-type= "multiline">
        <a href="#">
            <div class="description"> Some Description </div>
        </a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码抓取这个

const SELECTOR =
    "div.container";

const movies = await page.$$eval(
    SELECTOR,
      nodes =>
        nodes.map(element => {
          return {
            movieID: element.getAttribute("id"),
          };
        } )    
    );
Run Code Online (Sandbox Code Playgroud)

如何修改上面的代码,这样我可以阅读desc-type= "multiline"和innerText的<div class="description">?

har*_*ded 5

这个怎么样?

const movies = await page.$$eval(
    SELECTOR,
      nodes =>
        nodes.map(element => {
          return {
            movieID: element.getAttribute("id"),
            descType: element.querySelector('[desc-type]').getAttribute('desc-type'), 
            description: element.querySelector(".description").innerText
          };
        } )    
    );
Run Code Online (Sandbox Code Playgroud)