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 Unblocking Browser que utiliza a tecnologia VNC (Virtual Network Computing) para fornecer acesso visual em tempo real às suas sessões de automação de 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 Unblocking Browser ofereça recursos integrados de furtividade, 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 adequada dos seus fluxos de automação

  • Depurar 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 novnc do UB ou qualquer cliente compatível com WebSocket para conectar ao vnc
        console.log(`Conectar ao VNC: https://vnc.headlesify.io/novnc/?id=${sesId.value}`);

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

        // Aguarde 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?