Wie wähle ich das letzte Element in Selenium Webdriver mit Javascript aus?

Aug 31 2020

Ich erstelle ein Skript, um zu überprüfen, ob ein Element erfolgreich hinzugefügt wurde. Das hinzugefügte Element steht immer am Ende der Seite oder wird letztes Element in einem anderen Div. Ich benutze Selen Webdriver und Javascript. Hier ist HTML-Code

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

Ich habe es versucht

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)

Aber ich habe einen Fehler bekommen element.last() is not function

Kann mir jemand helfen? Ich kann in Javascript keine Referenzen zu Selenium Webdriver finden, die meisten verwenden Java. ss

Antworten

DebanjanB Aug 31 2020 at 13:25

Da das hinzugefügte Element immer das letzte Element ist, das das hinzugefügte Element überprüft, müssen Sie last-childdas übergeordnete Element suchen, das Sie uns im HTML-Code in der Frage nicht angezeigt haben. Um das zu finden last-child, können Sie die folgende auf CSS-Selektoren basierende Locator-Strategie verwenden :

  • Verwenden von 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

Wenn Sie hier das letzte oder erste Element verwenden möchten, müssen Sie ein Elementarray abrufen. Anstelle von findElement können wir findElements verwenden

let new_entity = await driver.findElements(By.css("..")).last();

let entity_value = warte auf new_entity.getAttribute ('value'); erwarten (Entitätswert) .to.be.eq (Entitätsname);