Javascript 使用Puppeter在类中选择div

Javascript 使用Puppeter在类中选择div,javascript,puppeteer,Javascript,Puppeteer,嗨,我正在尝试在类中选择一个给定的div。html的设置如下所示: <div class="items"> <div>fist div</div> <div>second div</div> <div>third div</div> </div> <div class="items"> <div>fist

嗨,我正在尝试在类中选择一个给定的div。html的设置如下所示:

<div class="items">
    <div>fist div</div>
    <div>second div</div>
    <div>third div</div>
</div>
<div class="items">
    <div>fist div two</div>
    <div>second div two</div>
    <div>third div two</div>
</div>
<div class="items">
    <div>fist div three</div>
    <div>second div three</div>
    <div>third div three</div>
</div>
这会像这样返回所有divs inn ann数组

["fist div"],["second div"],["third div"]
我想达到的是让所有的演员都参加所有的课程。所以它看起来像:

[
["fist div"],["second div"],["third div"],
["fist div two"],["second div two"],["third div two"],
["fist div three"],["second div three"],["third div three"],
]

我正在做一个foor循环,但我似乎无法让它工作。有什么想法吗?

嗯,你需要两个循环:

  let info = await page.evaluate(() => {
    let data = [];
    let elements = document.getElementsByClassName("items");
    for (var j in elements) {
      let yr = elements[j].getElementsByTagName("div");
      for (var i of yr) {
        data.push(i.textContent);
      }
    }
    return data;
  });
或者,更通俗地说:

let info=wait page.evaluate(()=>{
让数据=[];
document.getElementsByClassName(“items”).forEach(e=>
e、 getElementsByTagName(“div”).forEach(i=>data.push(i.textContent))
);
});

嗯,您需要两个循环:

  let info = await page.evaluate(() => {
    let data = [];
    let elements = document.getElementsByClassName("items");
    for (var j in elements) {
      let yr = elements[j].getElementsByTagName("div");
      for (var i of yr) {
        data.push(i.textContent);
      }
    }
    return data;
  });
或者,更通俗地说:

let info=wait page.evaluate(()=>{
让数据=[];
document.getElementsByClassName(“items”).forEach(e=>
e、 getElementsByTagName(“div”).forEach(i=>data.push(i.textContent))
);
});

只需添加for循环并获取长度即可 要获取所有元素, 当您使用
元素[0]
时,您只需获得第一个

let info=wait page.evaluate(()=>{let data=[];
let elements=document.getElementsByClassName(“items”);

for(设x=0;x只需添加for循环并获得长度 要获取所有元素, 当您使用
元素[0]
时,您只需获得第一个

let info=wait page.evaluate(()=>{let data=[];
let elements=document.getElementsByClassName(“items”);

对于(x=0;席)得到这个错误:评估失败:Type Error:元素[j]。GETELMENTSMEBTAGNOTEND不是一个函数,得到这个错误:评估失败:Type Error:元素[j]。GETELMENTSMEBTAGNOTENT不是函数,我会看到这个问题的第二个答案。我会看到这个问题的第二个答案。
 let info = await page.evaluate(() => { let data = [];
    let elements = document.getElementsByClassName("items");
    for(let x=0;x<elements.length;x++){  
        let yr = elements[x].getElementsByTagName("div");
    for (var i of yr) {
      data.push(i.textContent);
    }
    }
      
    return data;
  });