Puppeteer: exemplos de auditoria

Criado em 2 ago. 2017  ·  3Comentários  ·  Fonte: puppeteer/puppeteer

  • [x] adicionar exemplo para salvar um PDF
  • [x] adicionar exemplo: navegar para o google, inserir a consulta de pesquisa, clicar no botão enviar

    • talvez faça algo com resultados?

    • adicionar pavel's

  • [x] captura de tela

    • salvar a captura de tela no disco. feito.

    • obter e salvar a captura de tela inteira

    • obter e salvar a captura de tela emulada do iphone

  • [x] loadurlwithoutcss

    • atualizar para que funcione.

  • [x] unrandomize

    • o que este exemplo está realmente fazendo? excluir?

  • [] pagecallback

    • precisa de comentários para explicar o que o exemplo está realmente fazendo.

  • [x] detecta o nariz

    • pelo menos o setTimeout deve ser feito por meio de um await.

    • seria bom usar um proxy em vez de defineGetter, mas isso é de menor prioridade

    • Eu recomendaria uma declaração de função para passar para a avaliaçãoOnNewDocument. usamos essa convenção no lighthouse para deixar mais claro que é uma função de página. (colorWheel já faz isso :)

  • [x] waitFor example

Comentários muito úteis

Por exemplo, devemos começar a executá-los no linter e limpar um pouco o código para que sejam consistentes e usem es6. por exemplo, use const/let e uma função assíncrona de nível superior para remover a mistura de .then() e async / await. Acho que isso é menos comum de se ver.

Por exemplo, este:

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();

para talvez algo assim:

(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();

})();

Todos 3 comentários

Por exemplo, devemos começar a executá-los no linter e limpar um pouco o código para que sejam consistentes e usem es6. por exemplo, use const/let e uma função assíncrona de nível superior para remover a mistura de .then() e async / await. Acho que isso é menos comum de se ver.

Por exemplo, este:

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();

para talvez algo assim:

(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();

})();

Queremos manter os exemplos fantasmas? Eles se sentem fora do lugar.

Não consigo encontrar um exemplo simples, mas ilustrativo, para page.addBinding (antigo retorno de chamada inPage).

No entanto, a documentação contém alguns exemplos que podem ser bons o suficiente.
Fechando isso por enquanto.

PS Sinta-se à vontade para fazer uma RP de um exemplo com page.addBinding / compartilhar uma ideia para ele, se houver!

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

ryanvincent29 picture ryanvincent29  ·  3Comentários

barnash picture barnash  ·  3Comentários

namma-geniee picture namma-geniee  ·  3Comentários

bricss picture bricss  ·  3Comentários

ngryman picture ngryman  ·  3Comentários