使用量角器,我的目标是在给定名称值的情况下单击更新按钮,该值是唯一的。

<div class="Employee">
  <div class="address">
    <button class="street" value="update"/>
  </div>
  <div class="profile">
    <div class="name" value="Joe Smith"/>
  </div>
</div>
<div class="Employee">
  <div class="address">
    <button class="street" value="update"/>
  </div>
  <div class="profile">
    <div class="name" value="Jane Smith"/>
  </div>
</div>


因此,尝试查找所有“雇员”元素以查找所有父母,然后进行过滤以查找哪个“雇员”元素具有值为“简·史密斯”的特定孩子。然后使用该父元素单击“更新”按钮。

element.all(by.css('[class="Employee"]')).filter(function (elem,index) {
  if(elem.element(by.css('[value="Jane Smith"]')).isPresent()){
    return elem
  }
}).then(function (elem) {
  elem[0].element(by.css('[value="update"]')).click()
})


问题是在“ if”语句中,它始终等于true,但我不确定为什么。

也许还有另一种方法可以解决这个问题,而无需使用xpaths,因为这种环境一直在变化

最佳答案

关于您的if语句,它应该看起来像这样:

elem.element(by.css('[value="Jane Smith"]')).isPresent())
    .then(function (result) {
        if (result) { } //true
        else { }
    }

09-30 12:56
查看更多