He buscado en varios lugares pero no obtengo respuesta
aquí está mi html:
<form id="search_form_homepage" > ... <div class="search__autocomplete" style="display: block;"> <div class="acp-wrap js-acp-wrap"> <div class="acp" data-index="0"><span class="t-normal">elephant</span>cheap auto</div> <div class="acp" data-index="1"><span class="t-normal">elephant</span>asia</div> ... ... <div class="acp" data-index="2"><span class="t-normal">elephant</span>africa</div> </div> ... </div> </form> Simplemente necesito obtener el recuento del <div> presente dentro del div con la clase acp-wrap js-acp-wrap
Puedo llegar a este punto pero estoy atascado más allá:
let xyz = driver.findElements(By.className(".acp-wrap js-acp-wrap>div"));Necesitaría usar By.css para obtener el elemento con esto: .acp-wrap js-acp-wrap > div . Además, su selector no es correcto. Cuando selecciona un elemento por clase, debe colocar un punto antes del nombre de la clase: .acp-wrap.js-acp-wrap > div (elimine también el espacio entre acp-wrap y js-acp-wrap ).
Así es como puede obtener ese elemento ahora:
let xyz = driver.findElements(By.css(".acp-wrap.js-acp-wrap > div")); Ahora, para obtener el conteo, puede obtener la propiedad de length de xyz . Pero dado que driver.findElement devuelve una promesa, debe usar async-await. Puedes crear una función:
async function getCount() { let xyz = await driver.findElements(By.css(".acp-wrap.js-acp-wrap > div")); const count = xyz.length; return count; }Cuando llamas a la función:
getCount().then(function(count) { // your stuff there });