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

276
Vistas
¿Cómo sortear los elementos dinámicos cuando se raspa la web?

El siguiente código funciona porque puedo hacer clic en un botón en la página web usando Python/Selenium/Firefox.

botón en la página web

 driver.execute_script('''return document.querySelector('dba-app').shadowRoot.getElementById('configRenderer').shadowRoot.querySelector('ing-default-layout-14579').querySelector('dba-overview').shadowRoot.querySelector('ing-feat-agreement-overview').shadowRoot.querySelector('ing-ow-overflow-menu-14587').shadowRoot.querySelector('button')''').click()

Sin embargo, algunos elementos son dinámicos y los números cambian cada vez que vuelve a ejecutar el script.

Los elementos cambiantes:

  • 'ing-default-layout- 14579 '
  • 'ing-ow-desbordamiento- menú- 14587 '

¿Qué debo hacer para sortear los elementos dinámicos?

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

0

Una opción es buscar otros atributos que permanezcan iguales en todas las cargas de página. Por ejemplo, dado su HTML, podría hacer:

 document.querySelector('#configRenderer') // returns the config renderer element document.querySelector('[data-tag-name="ing-default-layout"]') // returns the ing-default-layout element document.querySelector('[data-tag-name="dba-overview]') // returns the dba-overview element

Y así. O podría usar el mismo método para identificar a un padre o un hijo, y luego navegar hasta el hijo o el padre, respectivamente.

Si el HTML no es lo suficientemente estable incluso para eso, otro enfoque sería buscar a través de todos los elementos y encontrar aquellos cuyo nombre de tagName comience con lo que necesita.

 for (const elm of document.querySelectorAll('*')) { if (elm.tagName.toLowerCase().startsWith('ing-ow-overflow-menu')) { // do stuff with elm, which is the overflow menu element } }
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