Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menghantar Pembolehubah dengan Betul ke Fungsi `page.evaluate()` Puppeteer?

Bagaimanakah Saya Boleh Menghantar Pembolehubah dengan Betul ke Fungsi `page.evaluate()` Puppeteer?

Patricia Arquette
Lepaskan: 2024-12-09 10:20:09
asal
616 orang telah melayarinya

How Can I Properly Pass Variables to Puppeteer's `page.evaluate()` Function?

Melalukan Pembolehubah ke Fungsi Penilaian Puppeteer

Dalam Puppeteer, fungsi page.evaluate() membenarkan pembangun melaksanakan JavaScript dalam konteks penyemak imbas. Walau bagaimanapun, menghantar pembolehubah ke dalam fungsi ini boleh menjadi rumit.

Pertimbangkan contoh berikut:

const puppeteer = require('puppeteer');

(async() => {

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

  const evalVar = 'WHUT??';

  try {

    await page.goto('https://www.google.com.au');
    await page.waitForSelector('#fbar');
    const links = await page.evaluate((evalVar) => {

      console.log('evalVar:', evalVar); // appears undefined

      const urls = [];
      hrefs = document.querySelectorAll('#fbar #fsl a');
      hrefs.forEach(function(el) {
        urls.push(el.href);
      });
      return urls;
    })
    console.log('links:', links);

  } catch (err) {

    console.log('ERR:', err.message);

  } finally {

    // browser.close();

  }

})();
Salin selepas log masuk

Dalam contoh ini, pembolehubah evalVar tidak ditentukan dalam fungsi page.evaluate(). Untuk menyelesaikan isu ini, pembolehubah mesti dihantar sebagai hujah kepada fungsi halaman:

const links = await page.evaluate((evalVar) => {

  console.log(evalVar); // 2. should be defined now
  ...

}, evalVar); // 1. pass variable as an argument
Salin selepas log masuk

Dengan mengikut pendekatan ini, pembolehubah boleh dihantar dengan mudah ke dalam fungsi page.evaluate(), membolehkan pelaksanaan operasi yang lebih kompleks dalam konteks penyemak imbas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Pembolehubah dengan Betul ke Fungsi `page.evaluate()` Puppeteer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan