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

86
Vistas
Necesito una solución para xpath

¿Existe una condición que puedo configurar para romper el bucle cuando llegue a la siguiente categoría? Me preguntaba cuál es el método equivalente para xpath a jquery nextHasta

 <div class="category">Category one</div> <div>category item 1</div> <div>category item 2</div> <div>category item 3</div> <div class="category">Category two</div> <div>category item 1</div> <div>category item 2</div> <div>category item 3</div> <div>category item 4</div>

necesito xpath que seleccionará elementos después de la categoría uno hasta la categoría dos, y de la categoría dos a la categoría n

 driver.find_elements_by_xpath('.//div[@class="category"]')[0].find_element_by_xpath('.//following::div')
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esta es la implementación manual de su solicitud, lea los comentarios en línea. Obviamente, esta es una de las múltiples formas de hacer lo que necesita.

 // Custom function to select FROM TO category const selectFromTo = (from, to) => { // Select all divs const divs = document.getElementsByTagName("div"); // Loop divs const result = []; let counter = 0; for(const div of divs) { // If there is classname "category" do count if(div.className === "category") counter++; // Check from/to number and push to results else if(counter >= from && counter < to) result.push(div); } // Return result return result; } // Select range // First digit is start category, // second is TILL this category number const test = selectFromTo(2, 4); // View selected console.log(test);
 <div class="category">Category one</div> <div>category item1 1</div> <div>category item1 2</div> <div>category item1 3</div> <div class="category">Category two</div> <div>category item2 1</div> <div>category item2 2</div> <div>category item2 3</div> <div>category item2 4</div> <div class="category">Category three</div> <div>category item3 1</div> <div>category item3 2</div> <div>category item3 3</div> <div>category item3 4</div> <div class="category">Category four</div> <div>category item4 1</div> <div>category item4 2</div> <div>category item4 3</div> <div>category item4 4</div> <div class="category">Category five</div> <div>category item5 1</div> <div>category item5 2</div> <div>category item5 3</div> <div>category item5 4</div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

En su caso, agruparía todos los elementos de la categoría en un nuevo div principal y luego los revisaría.

Ejemplo:

 <div class="category">Category one</div> <div id="category-1"> <div>category item 1</div> <div>category item 2</div> <div>category item 3</div> </div> <div class="category">Category two</div> <div id="category-2"> <div>category item 1</div> <div>category item 2</div> <div>category item 3</div> <div>category item 4</div> </div>

EDITAR: si no puede cambiar la estructura HTML (acabo de ver la etiqueta Selenium, así que supongo que es posible que no pueda), el método más fácil sería iterar a través de los elementos HTML y hacerlo sin XPath . XPath no está hecho para lo que intenta lograr.

Pseudocódigo:

 categories = [] current_category = [] for element in elements: if element.class is "category": if len(current_category) != 0: categories.append(current_category) current_category = [] else: current_category.append(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