Nightwatch .elements使用页面对象循环

时间:2018-06-26 20:54:23

标签: loops scope nightwatch.js pageobjects

我在页面对象中设置了代码。在页面对象命令中,我希望访问页面上的动态链接列表,确定href文本是否包含子字符串,然后单击第一个匹配的链接,或者单击随机匹配的链接。例如,我可能在页面上有16个链接,所有链接都具有相同的基本CSS选择器,但是链接的文本将具有不同的参数。通过选择带有该参数的元素,我知道我正在使用正确类型的链接。我是夜班的新手,我在页面对象范围和自定义页面对象命令中的回调函数内部无法引用浏览器方面感到困惑。

错误是:

✖TypeError:无法读取未定义的属性'elementIdClick'

这是失败的PO命令的代码:

    selectPartiallyEnteredAbstract: function () {
        this.api.perform(function(){ 
            console.log("We are in the selectPartiallyEnteredAbstract function"); 
            var selector = "div#contentWrap table tbody tr td table tbody tr td a"; 
            var elementId = 0;                   
            this.api.elements('css selector', selector, (matchingElements) => {                  
                console.log("Number of matching elements: " + matchingElements.value.length);
                let success = false;
                for (let elem of matchingElements.value){
                    if (success === true){
                        break;
                    }
                    else{
                        this.api.elementIdAttribute(elem.ELEMENT, 'href', function (hrefResult){
                            let hrefText = hrefResult.value;
                            if(hrefText.includes("rpscreen")){
                                this.api.elementIdClick(elem.ELEMENT);
                                success = true;
                            }
                        })
                    }
                }
            });
        }.bind(this));
        return this; 
    },  

TIA!

0 个答案:

没有答案