Inspeção de sessão

Veja como depurar sessões de automação via uma interface gráfica em tempo real.

O Session Inspection ferramenta é uma funcionalidade de depuração do Oxylabs Headless Browser que utiliza a tecnologia VNC (Virtual Network Computing) para fornecer acesso visual em tempo real às suas sessões de automação do navegador. Essa ferramenta cria uma ponte segura entre sua instância de navegador headless e uma interface gráfica que você pode observar e controlar.

Quando usá-la?

Embora o Oxylabs Headless Browser ofereça recursos embutidos de dissimulação, bypass dinâmico de CAPTCHA e outras funcionalidades, certos cenários exigem observação visual direta para:

  • Diagnosticar problemas complexos que não são evidentes a partir de logs ou mensagens de erro

  • Entender a renderização da página exatamente como o navegador a vê

  • Verificar a execução correta dos seus fluxos de automação

  • Solucionar comportamentos inesperados em tempo real

Exemplo de uso

Você pode habilitar a ferramenta Session Inspection adicionando o o_vnc=true parâmetro ao endpoint de conexão, por exemplo:

circle-check
const {chromium} = require('playwright');

(async () => {
    let page = null;
    let browser = null;

    try {
        // Use o parâmetro o_vnc=true para conectar
        browser = await chromium.connectOverCDP('wss://user:[email protected]?o_vnc=true');
        const ctx = browser.contexts()[0];

        // Crie uma nova página
        page = await ctx.newPage();
        page.on('console', async msg => {
            console.log(`BROWSER [${msg.type()}] ${msg.text()}`);
        });

        // Obtenha o ID da sessão usando uma sessão CDP
        let sesId = await (await ctx.newCDPSession(page)).send("__session_id");
        // Use o cliente UB novnc ou qualquer cliente com suporte a WebSocket para conectar ao vnc
        console.log(`Conecte-se ao VNC: https://vnc.headlesify.io/novnc/?id=${sesId.value}`);

        // Vá para uma página
        await page.goto('https://duckduckgo.com');

        // Durma por 10 minutos
        await new Promise(resolve => {
            setTimeout(resolve, 6000000);
        });
    }
    catch (e) {
        console.log("Finalizado com erro:", e);
    } finally {
        if (page != null) await page.close();
        if (browser != null) await browser.close();
        process.exit(0);
    }
})();

Atualizado

Isto foi útil?