如何突破量角器的每个循环?

时间:2018-12-02 06:11:49

标签: protractor ui-automation

我必须自动执行一个场景,即用户必须在第一页上的n(10)个组/行中分配一个组/行。 不能分配所有组/行。只能分配不会在横幅中引发错误消息(基于组查看状态)的组/行。 因此,我们必须遍历每个组并检查是否出现错误。如果没有错误,则分配组/行并中断.each循环。

下面的代码可以正常工作,但最后会引发以下错误:

  

失败:未知错误:元素在点(333,555)不可单击。

其他元素将获得点击:<div class="loading"></div"

即使在循环结束之后,错误脚本仍试图单击checkboxOfAllGroupRow元素。

我们如何解决此问题?

this.assignGroupRow = function () {
    pageTab.click();
    filterDropdownIcon.click();
    setValuesInFilterDropDown.click()
        .then(function () {
            functionLibrary.waitForLoaderToDisappear();
            browser.sleep(3000);
            var num = -1;
            checkboxOfAllGroupRow.each(function (checkbox, index) {
                checkbox.click().then(function () {
                    assignButtonInGroupPage.click();
                    dismissableErrorMessageInBanner.isPresent()
                        .then(function (errorPresence) {
                            if (errorPresence) {
                                checkbox.click();
                                dismissableErrorCloseIconInBanner.click();

                                if (index == groupCountOnFirstPage - 1)
                                    console.log(" No groups in first page can be assigned.");
                            } else {
                                assignReasonIcon.click();
                                youIdentifiedSMEReason.click();
                                suggestSMENameTextField.click();
                                suggestSMENameInputField.sendKeys("ldapID");
                                functionLibrary.waitElementToBeVisisble(highlightedOptionInSuggestSMEDropDown);
                                highlightedOptionInSuggestSMEDropDown.click();
                                yesBtnInAssignmentOfGroupDialog.click()
                                    .then(function () {
                                        bannerMessageOnAssignmentOfGroup.getText().then(function (message) {
                                            expect(message).toContain('group selected successfully assigned');
                                            num = index;
                                            return;
                                        });
                                        console.log(errorPresence + ' inside else. dialog is present at ' + index);
                                    });
                            }
                        });
                });
            });
        });
}

0 个答案:

没有答案