在量角器

时间:2017-01-25 19:22:54

标签: protractor

我正在尝试在嵌套转发器中找到一个元素,但我不确定如何解决它。

默认情况下,HTML看起来如下(编辑它以便于理解

<div ng-repeat =  "Repeater1">
    <div ng-repeat =  "Repeater2"> Text1 </div>
    <div ng-repeat =  "Repeater2"> Text2 </div>
    <div ng-repeat =  "Repeater2"> Text3 </div>
</div>

页面上有一个按钮view more,它会在页面上显示另外三个项目。因此,点击view more按钮后,HTML看起来就像是

<div ng-repeat =  "Repeater1">
     <div ng-repeat =  "Repeater2"> Text1 </div>
     <div ng-repeat =  "Repeater2"> Text2 </div>
     <div ng-repeat =  "Repeater2"> Text3 </div>
</div>

<div ng-repeat =  "Repeater1">
     <div ng-repeat =  "Repeater2"> Text4 </div>
     <div ng-repeat =  "Repeater2"> Text5 </div>
     <div ng-repeat =  "Repeater2"> Text6 </div>
</div>
如果页面上没有更多项目,

view more按钮将被禁用。

所以我的问题是:从默认页面(点击view more按钮之前)如何找到元素 文字6

测试应该做什么:

  • 搜索elementA
  • 的前三项
  • 如果找不到,请点击view more并搜索elementA
  • 的下三个项目 如果找不到
  • ,请再次点击view more,然后搜索elementA
  • 的下三个项目

以下代码使用转发器进行搜索,但我不确定如何在嵌套转发器之间进行搜索

let filteredList = this.Repeater2Elem.filter((item) => {
       return item.getText().then((text) => {
           return bundle === "text 2";
       });
   }).first().element(by.buttonText('Element Found')).click();

1 个答案:

答案 0 :(得分:0)

这取决于点击后出现的元素&#34;更多&#34;存在但不显示或根本不出现在DOM中。 假设元素在DOM中但未显示。 (下面显示的代码未经过测试)

dictionary= {'A':{'C':['D','E'],'F':['G','I','O']},'B':{'H':['J','K'],'L':['M','N']}}

首先获取所需的元素,然后通过点击递归查看更多信息来显示它。按钮。