Inspeção de Sessão

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

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

Quando usar?

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

  • Diagnosticar problemas complexos que não são evidentes pelos 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 trabalho de automação

  • Solucionar comportamentos inesperados em tempo real

Exemplo de uso

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

  • Navegador Chrome: wss://username:password@ubc.oxylabs.io?o_vnc=true

  • Navegador Firefox: wss://username:password@ubs.oxylabs.io?o_vnc=true

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:pass@ubc.oxylabs.io?o_vnc=true');
        const ctx = browser.contexts()[0];

        // Criar 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}`);

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

        // Dormir 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);
    }
})();

Isto foi útil?