Files
scoreodonto.com/base/playwright-engine/guia-form-analysis.js
T

61 lines
2.6 KiB
JavaScript

const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
});
const page = await context.newPage();
try {
console.log('Realizando login...');
await page.goto('https://viventerisportalcredenciado.topsaudehub.com.br/', { waitUntil: 'networkidle' });
await page.fill('#usuario', '0005010');
await page.fill('#senha', 'Cclinic#03');
await page.click('#login-submit');
await page.waitForURL('**/AreaLogada**');
console.log('Login OK. Navegando para Novo Registro (Guia)...');
// Tentar ir direto para a URL de novo registro
const baseUrl = 'https://viventerisportalcredenciado.topsaudehub.com.br';
await page.goto(baseUrl + '/HomePortalCredenciado/WorkFlow/NovoRegistro', { waitUntil: 'networkidle' });
console.log('Página de Novo Registro carregada. Analisando campos...');
await page.waitForTimeout(3000); // Esperar carregar formulário dinâmico
// Listar todos os inputs, selects e botões para entender o formulário de guias
const formFields = await page.evaluate(() => {
const inputs = Array.from(document.querySelectorAll('input, select, textarea, button'));
return inputs.map(i => ({
tagName: i.tagName,
type: i.type,
id: i.id,
name: i.name,
placeholder: i.placeholder,
labelText: i.labels?.[0]?.innerText || i.parentElement?.innerText?.split('\n')[0] || ''
})).filter(i => i.id || i.name);
});
console.log('CAMPOS DO FORMULÁRIO ENCONTRADOS:', JSON.stringify(formFields, null, 2));
// Verificar se há algum seletor de "Tipo de Guia"
const tiposGuia = await page.evaluate(() => {
const select = document.querySelector('select');
if (select) {
return Array.from(select.options).map(o => o.text);
}
return 'Nenhum select encontrado';
});
console.log('Opções de Guia/Select:', tiposGuia);
} catch (error) {
console.error('Erro:', error);
} finally {
console.log('Mantendo aberto para sua visualização por 60 segundos...');
await page.waitForTimeout(60000);
await browser.close();
}
})();