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

274
Visualizações
¿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 Respostas
Responde à pergunta

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 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