it('AddnewSupplier1',function() {
var i =0;
var isenabled=false;
var count=0;
element(by.css("path[d*='M20.995']")).click();
element(by.cssContainingText('div[class="mat-step-text-label ng-star-inserted"]','Supplier Maintenance')).getText().then(function(text) {
console.log(text);
}).then(function() {
do {
if (i>0) {
console.log("Clicking on NextButton");
element(by.css("button[class='mat-paginator-navigation-next mat-icon-button']")).click();
}
(element.all(by.xpath("//table[@class='mat-table']/tbody/tr/td[1]"))).each(function(webelement) {
webelement.getText().then(function(text) {
if(text=="IACE") {
count++;
console.log("Element is found");
//break;
}
});
});
var nextbutton = element(by.css("button[aria-label='Next page']"));
nextbutton.isEnabled().then(function(isEnabled) {
var isenabled=isEnabled;
console.log(isenabled);
}).then(function() {
i++;
console.log(i);
});
}
while(isenabled);
})
});
Я должен проверить, присутствует ли в таблице идентификатор поставщика "IACE".
Для этого я написал код, принимающий все значения в первом столбце таблицы, и проверил, используя "каждый". ".
Если элемент присутствует на первой странице, код работает. Но если это на второй или третьей странице, то я должен нажать на следующую кнопку. Прежде чем нажать на следующую кнопку, мне нужно проверить, включена ли кнопка или нет. Если кнопка включена, то я нажимаю на следующую кнопку и проверяю, присутствует ли элемент на этой странице и так далее. Если кнопка отключена, то это означает, что элемент отсутствует, и мне нужно пройти тестовый случай.
Для этого я написал код ниже. Я использовал Do ...while
, потому что на первой странице он должен проверить без каких-либо условий (то есть следующая кнопка включена или нет).
Возникла проблема:
Я сохранил isEnabled()
значение в isenabled
переменная. Я инициализировал эту переменную как false.
Но когда я запускаю тестовый пример, хотя мое значение находится на второй странице, оно не переходит на вторую страницу. Вместо этого он проверяет на первой странице и останавливает тест. Это происходит потому, что в while(isenabled)
, isenabled
хранится как false
. Я думаю, что перед выполнением isEnabled()
функция while(isenabled)
выполняется. Поэтому while(isenabled)
получает ложное значение, которое является инициализированным значением.
Я не могу найти, где и как решить обещание здесь.