Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

139
Vistas
Obtenga una parte específica de querySelector(x).innerText

Así que estoy tratando de automatizar una tarea en Titiritero, y una de las cosas que quiero hacer es obtener la hora como texto. Encontré la forma original demasiado complicada, así que opté por este método ya que la fecha y la hora ya están allí, solo tengo que aislar la hora.

Ejecutando esto en la consola web:

 document.querySelector('div[class="h1 text-success"]').innerText;

me da esto (por esta vez, la próxima vez que realice el proceso, se mostrará una hora diferente, suponiendo que rellene el formulario y la hora se actualice).

 'Tuesday, October 19, 2021 5:48 PM'

La pregunta: ¿Hay alguna forma de aislar específicamente la parte de las 5:48 p. m. sin importar lo que ocurra antes de la hora?

EDITAR: los dos métodos publicados funcionan (técnicamente, suponiendo que lo ingrese en la consola web usted mismo), pero Puppeteer tiene problemas (o simplemente no tengo idea de cómo implementarlo en Puppeteer, probablemente lo último).

Actualización 2 (porque de alguna manera no pude juntar 1 y 1 rápidamente): en lugar de declarar el const TimeRX, simplemente lo eliminé y sustituí TimeRX por RegExp. Esto fue lo que esa línea terminó como:

 const time = await page.evaluate(()=>document.querySelector("div.h1.text-success").textContent.match(/\d{1,2}:\d{2} (AM|PM)/i)?.[0]);

Probablemente terminaré cambiando el RegExp por el otro recomendado.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

¿Capturarlo con una expresión regular?

 const twelveHourTimeRx = /(1[0-2]|(?<!\d)[1-9]):[0-5]\d ?(AM|PM)/i // or the much simpler but less valid /\d{1,2}:\d{2} (AM|PM)/i const time = document.querySelector("div.h1.text-success") .textContent.match(twelveHourTimeRx)?.[0] console.log("time", time)
 <div class="h1 text-success"> Tuesday, October 19, 2021 5:48 PM </div>

Tenga en cuenta que he usado un selector mucho más indulgente para ubicar su <div> . Su original requiere que el atributo de class sea exactamente "h1 text-success" pero usar .h1.text-success significa que puede haber otras clases y en cualquier orden.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede dividir la cadena por un espacio y obtener los dos últimos elementos:

 const str = document.querySelector('.h1.text-success').textContent const res = str.split(' ').slice(-2).join(' ') console.log(res)
 <div class="h1 text-success">Tuesday, October 19, 2021 5:48 PM</div>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda