如何使用量角器从_ngcontent块中选择元素?

时间:2018-07-18 20:22:37

标签: javascript protractor automated-tests

我的角度应用程序具有以下结构。

<div _ngcontent-c8 class=“page-body”>
  <div _ngcontent-c8 class=“cell-list”>
    <a _ngcontent-c8="" class="cell cell-row ng-star-inserted" 
    queryparamshandling="preserve" ng-reflect-query- params- 
    handling="preserve" ng-reflect-router-link=“/path” href=“/link” 
    </a>
    <a _ngcontent-c8="" class="cell cell-row ng-star-inserted" 
    queryparamshandling="preserve" ng-reflect-query- params- 
    handling="preserve" ng-reflect-router-link=“/path” href=“/link” 
    </a>
    <a _ngcontent-c8="" class="cell cell-row ng-star-inserted" 
    queryparamshandling="preserve" ng-reflect-query- params- 
    handling="preserve" ng-reflect-router-link=“/path” href=“/link” 
    </a>
 </div>

如何从该结构中选择特定的标签?在以前的ng-repeat指令中,我可以使用“(element.all(by.repeater))”。但是,它不适用于以上代码。

我尝试使用element.all(by.css)),但这也不起作用。 你们有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试以下代码:

getByAttribute(searchText: string): ElementFinder {
  let container = element(by.css('.page-body .cell-list'));
  return container.all(by.tagName('a')).filter(function(el) {
    return el.getAttribute('href').then(function(value) {
      return value.trim() === searchText;
    });
  }).first();
}

此代码列出了所有a元素,并通过其href值对其进行过滤。这是向您展示如何过滤值的示例。