非法违规声明。的NodeJS

时间:2017-03-30 05:27:00

标签: javascript node.js jasmine protractor

执行以下代码时。它显示非法的break语句错误。我是nodejs的新手,请帮我解决这个问题。

代码是:

describe('Locating elements using JS', function () {
            it('Locate H1 tags', function () {
                browser.get("http://angularjs.org");
                element.all(by.js(function () {
                    //This is javascript code which will get h1 elements
                    var elementsArray = new Array();
                    var anchors = document.querySelectorAll('h3');
                    for (var i = 0; i < anchors.length; ++i) {
                        if (anchors[i].textContent != '') {
                            elementsArray.push(anchors[i]);
                        }
                    }
                    return elementsArray;
                })).then(function (webElements) {
                    //prints Number of h1 tags identified
                    console.log(webElements.length);
                    for (var i = 0; i < webElements.length; i++) {
                        webElements[i].getText().then(function (text) {
                            //prints text of each H1 tag
                            console.log(text);
                            //Verifying the text of each h1 tag should not be empty
                            expect(text).not.toBe('');
                            if(text=="Directives"){
                                break;
                            }

                        })
                    }
                });
            });
        });

1 个答案:

答案 0 :(得分:1)

问题是你在for / while中直接使用break NOT - 但在promise解析函数中是不正确的。

顺便提一下,如果你试图从element中过滤掉一个elementArray,那么Protractor API提供了一种漂亮的方法 - ElementArrayFinder.prototype.filter,可以帮助你完成工作。< / p>

  

将过滤函数应用于ElementArrayFinder中的每个元素。   返回一个新的ElementArrayFinder,其中包含所有传递的元素   过滤功能。过滤器函数接收ElementFinder作为   第一个参数和索引作为第二个arg。这实际上并非如此   检索基础元素列表,因此可以在页面中使用它   对象。

describe('Locating elements using JS', function () {
    it('Locate H1 tags', function () {
        browser.get("http://angularjs.org");
        element.all(by.js(function () {
            //Your existing JS Code to identify elements
        })).filter(function(elem, index) {
            return elem.getText().then(function(text) {
                return text === 'Directives';
            });
        }).first().click()
    });
});

BTW如果你想结识更多的方法来玩elementArray内的元素,比如每个,地图,减少等等。检查this link