Я должен автоматизировать сценарий, в котором пользователь должен назначить одну группу / строку из n (10) группы / строки на 1-й странице.Невозможно назначить все группы / строки. Можно назначить только те группы / строки, которые не выводят сообщение об ошибке (в зависимости от состояния проверки группы) в баннер.Таким образом, мы должны перебрать каждую группу и проверить, появляется ли ошибка или нет.Если ошибки нет, назначьте группу / строку и прервите цикл .each.
Приведенный ниже код работает нормально, но в конце выдает следующую ошибку:
Failed:неизвестная ошибка: элемент не активен в точке (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);
});
}
});
});
});
});
}