Puppeteer: contoh audit

Dibuat pada 2 Agu 2017  ·  3Komentar  ·  Sumber: puppeteer/puppeteer

  • [x] tambahkan contoh untuk menyimpan PDF
  • [x] tambahkan contoh: navigasikan ke google, masukkan permintaan pencarian, klik tombol kirim

    • mungkin melakukan sesuatu dengan hasil?

    • tambahkan pavel

  • [x] tangkapan layar

    • simpan tangkapan layar ke disk. selesai.

    • dapatkan dan simpan tangkapan layar satu halaman penuh

    • dapatkan dan simpan tangkapan layar iphone yang ditiru

  • [x] loadurltanpacss

    • perbarui agar berfungsi.

  • [x] mengacak

    • apa yang sebenarnya dilakukan contoh ini? menghapus?

  • [ ] panggilan balik halaman

    • membutuhkan komentar untuk menjelaskan apa yang sebenarnya dilakukan oleh contoh tersebut.

  • [x] mendeteksi mengendus

    • setidaknya setTimeout harus dilakukan melalui menunggu.

    • akan lebih baik menggunakan proxy daripada defineGetter, tapi itu prioritas yang lebih rendah

    • saya akan merekomendasikan deklarasi fungsi untuk diteruskan ke evaluationOnNewDocument. kami menggunakan konvensi itu di mercusuar untuk memperjelas bahwa ini adalah 'pageFunction. (colorWheel sudah melakukan ini :)

  • [x] tungguMisalnya

Komentar yang paling membantu

Sebagai contoh, kita harus mulai menjalankannya melalui linter dan sedikit membersihkan kode agar konsisten dan menggunakan es6. misalnya gunakan const/let dan fungsi async tingkat atas untuk menghapus campuran .then() dan async/await. Saya pikir itu kurang umum untuk dilihat.

Misalnya, ini:

var browser = new Browser({headless: false});
browser.newPage().then(async page => {
    page.setRequestInterceptor(request => {
        if (request.url.endsWith('.css'))
            request.abort();
        else
            request.continue();
    });
    var success = await page.navigate(address);
    if (!success)
        console.log('Unable to load the address!');
    browser.close();

untuk mungkin untuk sesuatu seperti ini:

(async () => {

const browser = new Browser({headless: false});
const page = await browser.newPage();
page.setRequestInterceptor(request => {
  request.url.endsWith('.css') ?  request.abort() : request.continue();
});

const success = await page.navigate(address);
if (!success) {
  console.log('Unable to load the address!');
}
browser.close();

})();

Semua 3 komentar

Sebagai contoh, kita harus mulai menjalankannya melalui linter dan sedikit membersihkan kode agar konsisten dan menggunakan es6. misalnya gunakan const/let dan fungsi async tingkat atas untuk menghapus campuran .then() dan async/await. Saya pikir itu kurang umum untuk dilihat.

Misalnya, ini:

var browser = new Browser({headless: false});
browser.newPage().then(async page => {
    page.setRequestInterceptor(request => {
        if (request.url.endsWith('.css'))
            request.abort();
        else
            request.continue();
    });
    var success = await page.navigate(address);
    if (!success)
        console.log('Unable to load the address!');
    browser.close();

untuk mungkin untuk sesuatu seperti ini:

(async () => {

const browser = new Browser({headless: false});
const page = await browser.newPage();
page.setRequestInterceptor(request => {
  request.url.endsWith('.css') ?  request.abort() : request.continue();
});

const success = await page.navigate(address);
if (!success) {
  console.log('Unable to load the address!');
}
browser.close();

})();

Apakah kita ingin menyimpan contoh hantu? Mereka merasa tidak pada tempatnya.

Saya tidak dapat menemukan contoh sederhana namun ilustratif untuk page.addBinding (mantan panggilan balik inPage).

Namun, dokumentasi memiliki beberapa contoh yang mungkin cukup baik.
Menutup ini untuk saat ini.

PS Jangan ragu untuk PR contoh dengan page.addBinding / bagikan ide untuk itu jika ada!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat