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:
Navegador Chrome:
wss://username:[email protected]?o_vnc=trueNavegador Firefox:
wss://username:[email protected]?o_vnc=true
Esse recurso funciona com as bibliotecas Playwright e Puppeteer.
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?

