【问题标题】:How to select last element in Selenium Webdriver using Javascript?如何使用 Javascript 选择 Selenium Webdriver 中的最后一个元素?
【发布时间】:2020-12-19 04:50:04
【问题描述】:

我创建了一个脚本来验证元素是否已成功添加。添加的元素始终位于页面末尾或成为不同 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

谁能帮帮我?我在 javascript 中找不到有关 selenium webdriver 的参考资料,其中大多数使用 java。 ss

【问题讨论】:

标签: javascript selenium selenium-webdriver css-selectors webdriver


【解决方案1】:

由于添加的元素始终成为验证添加元素的最后一个元素,因此您需要找到您尚未在问题的 HTML 中显示的 父元素last-child。因此,要找到last-child,您可以使用以下基于Locator Strategy

  • 使用css

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

【讨论】:

  • 我仍然无法获得最后一个元素,我得到了第一个元素,我想获得“房间”。我在帖子中附上了 sn-p 代码
  • 你可以用基于文本的 HTML 来更新问题而不是图像吗?
  • 您需要提供您不想要的第一个元素的 HTML,以便我们可以调整定位器,最好与父元素一起调整。
  • 添加的第一个元素的 html
  • 使用let entity_last_block = await driver.findElement(By.css('div.card.card-entity:last-child')) 作为父级解决。谢谢,debanjanB
【解决方案2】:

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

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

let entity_value = await new_entity.getAttribute('value'); expect(entity_value).to.be.eq(entity_name);

【讨论】:

  • 我尝试使用你的但得到错误InvalidSelectorError: invalid selector: An invalid or illegal selector was specified
猜你喜欢
  • 2021-10-14
  • 2019-06-03
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多