使用量角器获取具有特定属性值的 span 的子元素

Get child element of span with certain attribute value with protractor

我想用量角器测试是否弹出弹出窗口。这是我的html。弹出框位于最后一个子跨度中:

<span tariff-popover="views/popovers/c2g/airport.html" class="ng-isolate-scope">
    <span ng-transclude="">
        <span class="ng-scope">
           Flughafenpauschale
         </span>
     </span>
        &nbsp;
     <span popover-placement="right" popover-template="text" popover-trigger="mouseenter" class="fa fa-info-circle">
     </span>
</span>

如何 select 最后一个跨度?我需要根据父跨度上 tariff-popover 的值 select 它。这就是我尝试选择它的方式:

it('should display the popover-content on mouseover', function() {
  var popover = element(by.css('span[tariff-popover=views/popovers/c2g/airport.html] > .fa.fa-info-circle'));

  console.log(popover.getInnerHtml());

  /* more tests here */

});

console.log 给我错误,因为 css select 或者是错误的。有什么建议吗?

tariff-popover 值应该有引号。试试这个 -

var popover = element(by.css('span[tariff-popover="views/popovers/c2g/airport.html"] > .fa.fa-info-circle'));

此外 .getInnerHtml() 将 return 一个承诺。因此,您需要等待它 return 一个值。方法如下 -

popover.getInnerHtml().then(function(val){
    console.log(val);
});

希望对您有所帮助。