Доброго времени суток!
Я стремительно стараюсь осваивать инструмент ProtractorJS, но постоянно возникают проблемы. Может я чего не понимаю ,не спорю. Мне еще многому следует обучиться. И так, возникла проблема что не отрабатывают условия в моем коде. Тест идет на страницу с таблицей и там есть много строк с значением Processed
. Но порой в следствии действия других тестов, появляются значения Client
, Awaiting
, Call
. И вот мой код должен их находить, и если нашел - идти дальше по сценарию. Но он стопорится на первом условии (первое условие выдает false, так как я знаю что этого элемента нет в таблице) и тест падает, не пробегая дальше по условиям (в тестируемой таблице есть значение Awaiting
).
main_page.button().click();
browser.wait(ExpectedConditions.visibilityOf(element(by.cssContainingText(’.grid-cols-3’, ‘Processed’))), 10000);
if (element(by.cssContainingText(’.grid-cols-3’, ‘Client’)).isPresent()) {
element(by.cssContainingText(’.grid-cols-3’, ‘Client’)).click().then(function() {
element(by.css(’#FinApplication’)).click();
});} else if (element(by.cssContainingText(’.grid-cols-3’, ‘Awaiting’)).isPresent()) {
element(by.cssContainingText(’.grid-cols-3’, ‘Awaiting’)).click().then(function() {
element(by.css(’#FinApplication’)).click();
});} else if (element(by.cssContainingText(’.grid-cols-3’, ‘Call’)).isPresent()) {
element(by.cssContainingText(’.grid-cols-3’, ‘Call’)).click().then(function() {
element(by.css(’#FinApplication’)).click();
});} else {
browser.getAllWindowHandles().then(function(handles) {
browser.driver.close();
browser.switchTo().window(handles[0]);
});
};
Помогите, пожалуйста. Вроде же все правильно делаю. Метод IsPresent возвращает promise true/false, следовательно отдельно писать ==true по идее не надо, так как if/else if выполняется если условие выдает true, если не указано противоположного. Самое странное, что вчера этот код работал о_О
Webdriver-manager 12.0.6
Protractor 5.1.1
Jasmine 2.6.0
NodeJS 7.8.0