Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

138
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!