首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非法违规陈述。NodeJs

问非法违规陈述。NodeJs
EN

Stack Overflow用户
提问于 2017-03-30 05:27:00
回答 1查看 1.6K关注 0票数 1

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

守则是:

代码语言:javascript
复制
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;
                            }

                        })
                    }
                });
            });
        });
EN

回答 1

Stack Overflow用户

发布于 2017-03-30 06:46:12

问题是,您使用的是一个break,不是直接在for/while内部,而是在承诺解析函数中,这是不正确的。

顺便提一句,顺便提一句,如果您试图从element Protractor中过滤一个elementArray,那么它提供了一个漂亮的方法-- ElementArrayFinder.prototype.filter,它为您完成了准确的工作。

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

代码语言:javascript
复制
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()
    });
});

顺便说一句,如果您想查看更多的方法来处理elementArray中的元素,比如每一个,映射,减少等等。检查此链接

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43109233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档