Comment sélectionner le dernier élément dans Selenium Webdriver en utilisant Javascript?

Aug 31 2020

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

DebanjanB Aug 31 2020 at 13:25

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"))
    
issuesolverin Aug 31 2020 at 12:43

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é);