
import puppeteer from 'puppeteer';


async function runPuppeteer() {
    const browser = await puppeteer.launch({
        headless: false,
        slowMo: 500,
        defaultViewport: null
        //args: ['--no-sandbox', '--disable-setuid-sandbox']
    });

    const page = await browser.newPage();
  
    try {
      //Configurar un user-agent personalizado
      await page.setUserAgent(
          'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
      );

      // Navegar a Google
      await page.goto('https://consultaprocesos.ramajudicial.gov.co/Procesos/NombreRazonSocial');
      // Esperar a que la página se cargue completamente
      //await page.waitForNavigation({ waitUntil: 'networkidle2' });
  
      //selecciona la opción natural
      //const selector = '#app > div.v-menu__content.theme--light.menuable__content__active .v-list .v-list-item .v-list-item__content .v-list-item__title';
      
      const selector = '.v-menu__content.theme--light.menuable__content__active .v-list#list-64 .v-list-item#list-item-113-0 .v-list-item__content .v-list-item__title';
      // Esperar a que el botón esté presente en el DOM
      //await page.waitForSelector(selector, { visible: true, timeout: 5000 });

         // Verificar si el botón es visible y habilitado
    const isButtonVisible = await page.evaluate((selector) => {
        const element = document.querySelector(selector);
        console.log('elemento ',element);
        return element && element.offsetParent !== null; // offsetParent verifica si el elemento es visible
      }, selector);
  
      if (isButtonVisible) {
        console.log('El botón está visible. Haciendo clic...');
        await page.click(selector); // Hacer clic en el botón
      } else {
        console.log('El botón no está visible o no es interactuable.', isButtonVisible);
      }


      // Wait and click on first result
        // const searchResultSelector = '.devsite-result-item-link';
        // await page.waitForSelector(searchResultSelector);
        // await page.click(searchResultSelector);

 // Esperar a que un elemento con el texto "Más información" esté presente usando XPath
 //await page.waitForSelector('xpath://span[.//contains(text(), "Leer mas")]');

 //await page.waitForSelector('xpath://*[@id="primary"]/div/section[1]/div[2]/div/div/section/div/div[1]/div/div[5]/div/div/a/span)]');

//  await page
//   .locator('button')
//   .filter(button => button.innerText === 'Clientes')
//   .click();

//  page.waitForSelector(3000);



// Hacer clic en el enlace usando XPath
//await page.click('//path://span[contains(text(), "Leer mas")]');

// Obtener el texto de un elemento usando XPath
///const texto = await page.$eval('xpath://h1', h1 => h1.textContent);
//console.log(texto);


      //   // Locate the full title with a unique string
      //       const textSelector = await page.waitForSelector(
      //         'elementor',
      //       );
      //       const fullTitle = await textSelector?.evaluate(el => el.textContent);

      //        console.log('Full title:', fullTitle);

      // setTimeout(() => {
      //   console.log('Esperando 2 segundos');
      // }, 2000);







    //    // Esperar al menú desplegable y hacer clic en él
    // await page.waitForSelector('div[role="listbox"]');
    // await page.click('div[role="listbox"]');

    // // // Esperar a que las opciones del menú se carguen
    // // await page.waitForSelector('div[role="option"] .v-list-itemtitle');

    // // Usar XPath para encontrar la opción "Natural"
    // const [optionNatural] = await page.$x('//div[@role="listbox"]//div[text()="Natural"]');
    // if (optionNatural) {
    //   await optionNatural.click();
    //   console.log('Opción "Natural" seleccionada correctamente.');
    // } else {
    //   console.log('No se encontró la opción "Natural".');
    // }
     


      //Funciona OK
      /***************************************************************************************/
      /*** Ingresa el texto a buscar en la caja de texto (nombre de la persona o empresa) ****/
      /***************************************************************************************/
      // Esperar a que el campo de entrada esté disponible
      //await page.waitForSelector('div.v-text-field__slot > input[type="text"]', { timeout: 5000 }); // Espera hasta 10 segundos
      //-const searchInputSelector = 'div.v-text-field__slot > input[type="text"]';
      //-await page.waitForSelector(searchInputSelector);
      // Escribir texto en el campo de búsqueda
      //-const searchText = 'Juan Perez'; // Cambia esto al texto que deseas buscar
      //-await page.type(searchInputSelector, searchText);

  } catch (error) {
    console.error('Ocurrió un error:', error);
  } finally {
    await browser.close();
  }
}

(async () => {
    try {
      //const searchText = 'Juan Perez'; // Cambia esto al texto que deseas buscar
      const results = await runPuppeteer();
      //console.log('los resultados en JSON',JSON.stringify(results, null, 2));
    } catch (error) {
      console.error('Error:', error.message);
    }
  })();