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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

嵌套等待無(wú)法正常工作 Puppeteer

嵌套等待無(wú)法正常工作 Puppeteer

在此代碼中,我嘗試過(guò)濾掉 ElementHandle 數(shù)組的部分內(nèi)容。我檢查它是否有效的方法是打印最終過(guò)濾數(shù)組的長(zhǎng)度。應(yīng)該是 4,而不是 30。const ar = await page.$$("li[class*=react-job-listing]");const shortArray = Array.from(ar).filter(async (el)=> {    console.log((await (await el.getProperty("innerText")).jsonValue()).includes("Easy Apply"));    return (await (await el.getProperty("innerText")).jsonValue()).includes("Easy Apply");});//console.log((await (await ar[0].getProperty("innerText")).jsonValue()).includes("Easy Apply"));console.log(shortArray.length);console.log('hello');不幸的是,這就是結(jié)果。30hellofalsefalsefalsefalsetruefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsetruefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsefalsetruefalse長(zhǎng)度的控制臺(tái)日志出現(xiàn)在過(guò)濾器執(zhí)行之前,而它應(yīng)該是最后一件事。看來(lái)腳本并沒(méi)有等待等待。一定是由于多重嵌套的等待造成的。但我不知道如何解決它。我知道這真的很難看。但由于某些原因我現(xiàn)在無(wú)法使用 page.evaluate 和 DOM 函數(shù)。請(qǐng)暫時(shí)看一下。
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊

這不是傀儡師的錯(cuò)。異步函數(shù)返回 Promise,因此在Array.from(ar).filter()每個(gè) callbak 中都返回 thruthy 值,并且不會(huì)過(guò)濾掉任何內(nèi)容。使用for..of循環(huán)進(jìn)行異步操作更簡(jiǎn)單、更安全:


import puppeteer from 'puppeteer';


const browser = await puppeteer.launch();


const html = `

  <!doctype html>

  <html>

    <head><meta charset='UTF-8'><title>Test</title></head>

    <body>

      <p>foo 1</p>

      <p>foo 2</p>

      <p>bar 1</p>

      <p>bar 2</p>

    </body>

  </html>`;


try {

  const [page] = await browser.pages();


  await page.goto(`data:text/html,${html}`);


  const ar = await page.$$("p");

  const shortArray = [];

  for (const element of ar) {

    const text = await (await element.getProperty("innerText")).jsonValue();

    console.log(text, text.includes("foo"));

    if (text.includes("foo")) shortArray.push(element);

  }

  console.log(shortArray.length);

  console.log('hello');


} catch(err) { console.error(err); } finally { await browser.close(); }

foo 1 true

foo 2 true

bar 1 false

bar 2 false

2

hello


查看完整回答
反對(duì) 回復(fù) 2023-07-14
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)