Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

582
Visualizações
Javascript/HTML/Puppeteer: ¿cómo acceder a los valores del atributo data-bind (para hacer clic en un botón)?

Actualmente estoy usando Titiritero para hacer clic en un botón en una página. El problema al que me enfrento es que el elemento seleccionado para hacer clic carga el botón durante un cierto período de tiempo que supongo que es arbitrario para mi conexión a Internet o quizás incluso parámetros adicionales (así que incluso si uso el método waitForSelector() , el botón no se podrá hacer clic aunque el elemento esté presente, porque aún se está cargando).

Podría agregar una function waitFunc(seconds) pero el script se interrumpirá si el tiempo de carga del botón es superior al tiempo de waitFunc(5) (por lo que no siempre funcionará, a menos que el tiempo de espera sea arbitrariamente lo suficientemente largo, pero luego desafía el propósito de tener el guión). Mi requisito sería hacer clic en el botón tan pronto como se haya cargado. ¿Cómo podemos hacer esto?

En la etiqueta del botón a continuación, veo que hay loadingButton en data-bind . Anticipo que podría devolver un valor booleano. Sin embargo, ¿cómo puedo acceder a estos datos con Titiritero y crear una función para hacer clic en este botón una vez cargado?

 < button type="submit" data-bind=" buttonText: 'ClickMe', click: clickMe, loadingButton: loading, enable: canClickMe" class="btn-class" > Click Me! </button>

Investigué un poco sobre Knockout, pero no lo entiendo lo suficiente como para manipular esta herramienta. Me imagino que una vez que logré obtener el valor de loadingButton , puedo usar un bucle while para hacer clic en el botón una vez que cambió su valor.

const attr = await page.$eval(selectors.buyNow, el => el.map(x => x.getAttribute("data-bind"))) , pero el valor devuelto es la cadena "buttonText: 'ClickMe', click: clickMe, loadingButton: loading, enable: canClickMe" (literalmente lo que está en el atributo data-bind la etiqueta del botón HTML).

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Entonces, ¿quieres hacer clic en ese botón? Qué tal si:

 let button = await page.waitForSelector(`button[data-bind*="loadingButton"]`) await button.click()
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda