t.me/atinfo_chat Telegram группа по автоматизации тестирования

ProtractorJS_не корректно работает clear()_не успевает sendKeys()

Теги: #<Tag:0x00007f9afac6be60> #<Tag:0x00007f9afac6bbe0> #<Tag:0x00007f9afac6b898>

Добрый день,

Возникла следующая проблема.
Есть форма, в которой по-умолчанию заполнено поле formStepOne_page.enterFieldSum() значением “950”. Мне нужно значение заменить на другое. Написал код теста (приведу ниже pageobject, если требуется):

PageObject:

var formStepOne_page = function() {
this.enterFieldSum = function() {
		return element(by.model('loan.options.curSum'));
	};
};

Тест:

formStepOne_page.enterFieldSum().clear().then(function(){
	formStepOne_page.enterFieldSum().sendKeys('200');
});

Так вот, когда запускаю тест, то вижу, что он стирает данные с поля, потом автозаполняется значением по-умолчанию “950”, и только потом добавляется/приплюсовывается справа мое новое значение из sendKeys()'a. И получается “950200”, а не “200”. Кто с таким сталкивался?

P.S.: При чем очень странно то, что в другом месте тестируемого продукта тоже есть эта форма (она немного больше) и там тест работает корректно. Но то место, где тест работает, идет ранее по процессу, то есть в моем понимании данные по-умолчанию уже получаются из БД, а не из заданного значения на фронте.

Разобрался. У меня по коду ранее стояло browser.ignoreSynchronization = false. И вот, после того как я перед тестируемой строкой написал browser.ignoreSynchronization = true, вс заработало.

browser.ignoreSynchronization = true,
formStepOne_page.enterFieldSum().clear();
formStepOne_page.enterFieldSum().sendKeys(200);
browser.ignoreSynchronization = false;

Не смотря на то, что clear() возвращает promise, код работает только без then(), иначе все равно сначала подставляет число по умолчанию.