如何使用Javascript选择SeleniumWebDriver中的最后一个元素?

如何使用Javascript选择SeleniumWebDriver中的最后一个元素?,javascript,selenium,selenium-webdriver,css-selectors,webdriver,Javascript,Selenium,Selenium Webdriver,Css Selectors,Webdriver,我创建了一个脚本来验证是否成功添加了元素。添加的元素总是在页面的末尾,或者成为不同分区中的最后一个元素。我使用的是SeleniumWebDriver和javascript。下面是HTML代码 <div class="row"> <div class="form-group col-sm-2 col-xs-12"> <label>Entity Name</label> <i

我创建了一个脚本来验证是否成功添加了元素。添加的元素总是在页面的末尾,或者成为不同分区中的最后一个元素。我使用的是SeleniumWebDriver和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>
但我犯了个错误
element.last()不是函数


有人能帮我吗?我在javascript中找不到有关SeleniumWebDriver的参考资料,其中大多数使用java

这里,当您想要使用最后一个或第一个元素时,我们必须获得一个元素数组。我们可以使用findElement代替findElement

let new_entity = await driver.findElements(By.css("..")).last();
让entity_value=等待新的_entity.getAttribute('value');
expect(实体值).to.be.eq(实体名称)

这里,当您想要使用最后一个或第一个元素时,我们必须获得一个元素数组。我们可以使用findElement代替findElement

let new_entity = await driver.findElements(By.css("..")).last();
让entity_value=等待新的_entity.getAttribute('value');
expect(实体值).to.be.eq(实体名称)

由于添加的元素始终成为验证添加元素的最后一个元素,因此您需要找到父元素的
最后一个子元素
,该子元素未在问题的HTML中显示。因此,要定位
最后一个子项
,您可以使用以下基于

  • 使用css:


由于添加的元素始终成为验证添加元素的最后一个元素,因此您需要找到父元素的
最后一个子元素,该子元素未在问题的HTML中显示。因此,要定位
最后一个子项
,您可以使用以下基于

  • 使用css:


我们已经在同一问题上发表了文章,请在此处查找。我们已经在同一问题上发表了文章,请在此处查找。我尝试使用您的,但出现错误
invalidSelector错误:无效选择器:指定了无效或非法的选择器。
我尝试使用您的,但出现错误
invalidSelector错误:无效选择器:无效或无效选择器指定了非法选择器
我仍然无法获取最后一个元素,我获取了第一个元素,我想获取“Room”。我将代码片段附在我的帖子上,而不是图片上。你能用基于文本的HTML更新问题吗?你需要提供你不想要的第一个元素的HTML,这样我们就可以调整定位器,最好是与第一个元素的父元素.HTML一起使用
let entity_last_block=wait driver.findElement添加解析(By.css('div.card.card实体:最后一个子项'))
作为家长。谢谢,debanjanBI仍然无法得到最后一个元素,我得到了第一个元素,我想得到“房间”。我在图片的帖子上附上了代码片段。你能用基于文本的HTML更新问题吗?你需要提供你不想要的第一个元素的HTML,这样我们可以调整定位器,最好是沿着wi第一个元素的父元素.html使用
let entity_last_block=wait driver.findElement(By.css('div.card.card entity:last child'))作为父元素添加解析。谢谢,debanjanB
let new_entity = await driver.findElement(By.css("immediateParentTag div:last-child > div.form-group.col-sm-2.col-xs-12 > input"))