Protractor 在量角器中查找嵌套中继器中的元素

Protractor 在量角器中查找嵌套中继器中的元素,protractor,Protractor,我试图在嵌套的中继器中找到一个元素,但我不确定如何处理它 默认情况下,HTML如下所示(编辑它以便于理解) 查看更多信息如果页面上没有更多项目显示,则该按钮将被禁用 因此,我的问题是:从默认页面(在单击“查看更多”按钮之前)如何找到元素文本6 测试应该做什么: 在前三项中搜索elementA 如果未找到,请单击查看更多,然后在接下来的三个项目中搜索elementA 如果未找到,请再次单击查看更多,然后在接下来的三个项目中搜索元素a 下面的代码使用转发器进行搜索,但我不确定如何在嵌套转发器之间

我试图在嵌套的中继器中找到一个元素,但我不确定如何处理它

默认情况下,HTML如下所示(编辑它以便于理解)

查看更多信息
如果页面上没有更多项目显示,则该按钮将被禁用

因此,我的问题是:从默认页面(在单击“查看更多”按钮之前)如何找到元素文本6

测试应该做什么:

  • 在前三项中搜索
    elementA
  • 如果未找到,请单击
    查看更多
    ,然后在接下来的三个项目中搜索
    elementA
  • 如果未找到,请再次单击
    查看更多
    ,然后在接下来的三个项目中搜索
    元素a
下面的代码使用转发器进行搜索,但我不确定如何在嵌套转发器之间进行搜索

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

这取决于单击“更多”后出现的元素是否存在但未显示或根本不出现在DOM中。 假设元素在DOM中,但未显示。(下面显示的代码未经测试)


首先获取所需元素,然后通过单击“查看更多”按钮将其显示。

这取决于单击“更多”后显示的元素是否存在但未显示或根本不显示在DOM中。 假设元素在DOM中,但未显示。(下面显示的代码未经测试)

首先获取所需元素,然后通过单击“查看更多”按钮将其显示

<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>
let filteredList = this.Repeater2Elem.filter((item) => {
       return item.getText().then((text) => {
           return bundle === "text 2";
       });
   }).first().element(by.buttonText('Element Found')).click();
function getAppearence(elem) {
    return elem.isDispalyed().then(function (isDispalyed) {
        if (isDispalyed)
            return elem;//will return the element to continue working on it, otherwise return true 
        else {
            return viewMoreButton.click().then(function () {
                return getAppearence(elem);
            });
        }
    });
}

this.Repeater2Elem.filter(function (item, index) {    
    return item.getText().then(function (text) {
        return text === "textX";
    });
}).then(function (elem) {
    if (elem.length ==1)
        return getAppearence(elem[0]).then(function (elem) {
           return elem
        })
    })