第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何顯示給定 div 的所有結果,而不僅僅是一個 - puppeter

如何顯示給定 div 的所有結果,而不僅僅是一個 - puppeter

牧羊人nacy 2022-12-09 19:52:34
對不起,文檔對我來說有點難以理解。我使用的論點:const myDiv = await page.$$eval(".myDiv", myDiv => myDiv.textContent);但是 console.log 只會返回一個結果,而此 div 的結果 >10。我如何顯示它們?編輯//這是我正在學習的代碼const puppeteer = require('puppeteer');(async () => {  const browser = await puppeteer.launch();  const page = await browser.newPage();  await page.goto('mypage');  // await page.screenshot({path: 'example.png'});    await page.waitForSelector(".myDiv");    const myDiv = await page.$eval(".myDiv", myDiv => myDiv.textContent);    console.log(myDiv);  await browser.close();})();
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

您可以使用page.evaluate:


const myDiv = await page.evaluate(() => {

  const divs = Array.from(document.querySelectorAll('.myDiv'))

  return divs.map(d => d.textContent)

});

傳遞給的函數(shù)page.evaluate將被序列化并發(fā)送到瀏覽器,因此它在瀏覽器上下文(而不是節(jié)點)中執(zhí)行。


查看完整回答
反對 回復 2022-12-09
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

由于您沒有提供更多代碼,因此這個答案非常自以為是,可能無法解決您的問題。但它向您展示了一種了解正在發(fā)生的事情的方法。


特別是在開發(fā)過程中,結合使用page.exposeFunction()和page.evaluate()來查看瀏覽器以及節(jié)點/木偶操縱者中發(fā)生的事情非常有幫助。這是一個草稿,我希望它能幫助你理解。


(async () => {

  function executedInNodeContext(result) {

    //this prints in the Node Console

    console.log(result);

  }


  function executedInBrowserContext() {

    console.log('Im in the Browser');

    const myDiv = [...document.querySelectorAll('.myDiv')];

    window.nameOfNodeFunction(myDiv);

  }


  // See the browser

  const browser = await puppeteer.launch({ headless: false });


  // Create a new page

  const page = await browser.newPage();


  // Callback in Node Context

  await page.exposeFunction('nameOfNodeFunction', executedInNodeContext);


  // Send puppeteer to a Url

  await page.goto('http://localhost/awesome/URL');


  // Function executed in the Browser on the given page

  await page.evaluate(executedInBrowserContext);

})();


查看完整回答
反對 回復 2022-12-09
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

page.$$eval()在其回調中發(fā)送一個包含元素的數(shù)組,因此您需要這樣的東西來獲取所有元素數(shù)據(jù):

const myDivs = await page.$$eval(".myDiv", divs => divs.map(div => div.textContent));


查看完整回答
反對 回復 2022-12-09
  • 3 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號