Akses pembolehubah tetingkap javascript dalam Puppeteer
P粉787806024
P粉787806024 2023-09-04 23:32:41
0
1
596
<p>Dalam skrip Puppeteer saya, saya menggunakan fail JS untuk melaksanakan sebelum memuatkan halaman: </p> <pre class="brush:js;toolbar:false;">const preloadFile = fs.readFileSync('./file.js', 'utf8'); const id = tunggu page.evaluateOnNewDocument(preloadFile); </pra> <p>file.js mengandungi: </p> <pre class="brush:js;toolbar:false;">const i = setInterval(()=>{ if (window.turnstile) { clearInterval(i) window.turnstile.render = (a,b) => b.userAgent = navigator.userAgent window.tsCallback = b.panggilan balik tingkap.tindakan = b.tindakan window.data = b.cData console.log(b) kembalikan 'foo' } } },50) </pra> <p>Skrip ini mencetak objek (Tindakan, Cdata, Panggilan Balik...) pada konsol penyemak imbas</p> <p>Saya mahu mendapatkan objek ini dari sisi boneka dan boleh memanggil panggilan balik fungsi(). </p> <p>Saya menggunakan page.evaluate() tetapi ia tidak berkesan untuk saya</p>
P粉787806024
P粉787806024

membalas semua(1)
P粉193307465

Anda boleh menggunakan perpustakaan pembalut Puppeteer saya https://github.com/wix-incubator/bubanai/pulls untuk mencapai ini (dapatkan objek dari konsol pelayar), gunakan kaedah new ConsoleDriver(context).getMessages() dan kemudian tarik objek yang diterima Tukar dari tatasusunan kepada JSON...

Atau hanya salin kod ConsoleDriver ke dalam projek anda.

Rujukan

Contoh penggunaan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan