Skip to content

Exemplos Práticos Playwright

Abaixo estão alguns padrões avançados para tirar o máximo proveito do Playwright no ecossistema Mbbrowser.

1. Upload de Arquivos

O Playwright facilita o upload de documentos e imagens em sites de classificados ou redes sociais.

javascript
// Selecionar um arquivo local para upload
await page.setInputFiles('input[type="file"]', 'caminho/para/imagem.jpg');

2. Manipulação de Popups e Novas Janelas

Sempre que uma ação abrir uma nova aba, você pode capturá-la assim:

javascript
const [newPage] = await Promise.all([
  context.waitForEvent('page'), // Aguarda a nova página (aba)
  page.click('a[target="_blank"]') // Clica no link que abre em nova aba
]);

await newPage.waitForLoadState();
console.log('URL da nova aba:', newPage.url());

3. Extração de Dados em Tabelas Paginadas

Exemplo de como navegar por páginas e coletar dados.

javascript
async function scrapeData(page) {
  const data = [];
  while (true) {
    // Extrai itens da página atual
    const items = await page.locator('.table-row').all();
    for (const item of items) {
      data.append(await item.innerText());
    }

    // Verifica se existe botão de "Próximo" e se está habilitado
    const nextBtn = page.locator('button.next');
    if (await nextBtn.isVisible() && await nextBtn.isEnabled()) {
      await nextBtn.click();
      await page.waitForLoadState('networkidle');
    } else {
      break;
    }
  }
  return data;
}

Boas Práticas para Playwright no Mbbrowser

  1. Reutilize o Contexto: No Mbbrowser, o context já vem com as configurações de cookies do perfil. Não crie novos contextos anônimos se quiser manter o login.
  2. Use Locators Estáveis: Evite IDs dinâmicos gerados por frameworks como React. Prefira getByRole ou atributos de dados (ex: data-testid).
  3. Tratamento de Timeouts: Em conexões de proxy lentas, aumente o timeout padrão do Playwright globalmente:
    javascript
    context.setDefaultTimeout(60000); // 60 segundos
  4. Fechamento Seguro: Sempre chame browser.close() no final do seu script para liberar os recursos do Playwright, mesmo que você opte por deixar a janela do Mbbrowser aberta.