Comment sélectionner le dernier élément dans Selenium Webdriver en utilisant Javascript?
Je crée un script pour vérifier qu'un élément a été ajouté avec succès. L'élément ajouté toujours à la fin de la page ou devient le dernier élément dans un div différent. J'utilise sélénium webdriver et javascript. Voici le code HTML
<div class="row">
<div class="form-group col-sm-2 col-xs-12">
<label>Entity Name</label>
<input value="ttax" class="form-control entity-name" disabled="">
</div>
</div>
<div class="row">
<div class="form-group col-sm-2 col-xs-12">
<label>Entity Name</label>
<input value="Room" class="form-control entity-name" disabled="">
</div>
</div>
J'ai essayé ça
let new_entity = await driver.findElement(By.css("div:nth-child(2) > div.form-group.col-sm-2.col-xs-12 > input").last()
let entity_value = await new_entity.getAttribute('value')
expect(entity_value).to.be.eq(entity_name)
Mais j'ai une erreur element.last() is not function
Quelqu'un peut-il m'aider? Je ne trouve pas de références sur le sélénium webdriver en javascript, la plupart utilisant java. ss
Réponses
Comme l'élément ajouté est toujours le dernier élément de vérifier l'élément ajouté que vous devez localiser le last-childde l' élément parent que vous ne nous avez pas indiqué dans le HTML dans la question. Donc, pour localiser le, last-childvous pouvez utiliser la stratégie de localisation suivante basée sur les sélecteurs css :
Utilisation de css :
let new_entity = await driver.findElement(By.css("immediateParentTag div:last-child > div.form-group.col-sm-2.col-xs-12 > input"))
Ici, lorsque vous souhaitez utiliser le dernier ou le premier élément, nous devons obtenir un tableau d'éléments. Au lieu de findElement, nous pouvons utiliser findElements
let new_entity = await driver.findElements(By.css("..")).last();
let entity_value = attendre new_entity.getAttribute ('value'); expect (valeur_entité) .to.be.eq (nom_entité);