如何使用 Javascript select Selenium Webdriver 中的最后一个元素?

How to select last element in Selenium Webdriver using Javascript?

我创建了一个脚本来验证元素是否已成功添加。添加的元素始终在页面末尾或成为不同 div 中的最后一个元素。我正在使用 selenium webdriver 和 javascript。这是 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>

我试过了

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)

但是我得到了错误 element.last() is not function

谁能帮帮我?我在 java 脚本中找不到有关 selenium webdriver 的参考,其中大部分使用 java。 ss

这里当你想使用最后一个或第一个元素时,我们必须得到一个元素数组。我们可以使用 findElements

而不是 findElement
let new_entity = await driver.findElements(By.css("..")).last();

让entity_value =等待new_entity.getAttribute('value'); 期待(entity_value).to.be.eq(entity_name);

由于添加的元素总是成为验证添加元素的最后一个元素,因此您需要找到您没有向我们展示的 父元素last-child在 HTML 内的问题。因此,要找到 last-child,您可以使用以下 based :

  • 使用css:

    let new_entity = await driver.findElement(By.css("immediateParentTag div:last-child > div.form-group.col-sm-2.col-xs-12 > input"))