我必须自动执行一个场景,即用户必须在第一页上的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);
});
}
});
});
});
});
}