Дано:
Текстовое поле на реакте. При клике превращается в поле ввода, разрешая вводить, менять и удалять текст. При клике вне поля либо при нажатии Enter или TAB - рест-сервис отправляет новое значение на сервер, и поле превращается опять в текстовое с новым значением.
Есть код, который работает когда надо ввести новое, не пустое значение:
descriptionField.click(); WebElement descriptionFieldEditMode = waitForElementToBeVisible(By.xpath(descriptionFieldEditModeXPath(tracker))); descriptionFieldEditMode.clear(); descriptionFieldEditMode.sendKeys(description); descriptionFieldEditMode.sendKeys(Keys.RETURN);
Нажимаем на текстовое поле, оно превращается в поле ввода, очищаем поле, вводим текст из параметра "description" например "123", отправляем "ввод" - и рест-запрос со значением "123" идёт на сервер, поле превращается обратно в текстовое с новым значением "123"
Проблема с выставлением пустого значения. Если в браузере руками выставить пустое значение и нажать энтер - тогда рест-сервис срабатывает, отправляет пустое значение на сервер, и поле принимает пустое значение.
Но если прогоняешь код на Селениуме, то после "sendKeys(Keys.RETURN)" происходит следующее:
так как значение поля пустое, то браузер решает что "ничего не менялось", и не посылает рест-запрос с пустым значением, поле ввода при этом превращается в текстовое поле со старым значением.
Пробовал и ТАБ слать, и ENTER, и слать их через Actions, и кликать вне поля - не помогает, браузер сразу же после этого восстанавливает в поле старое значение
Есть идеи как можно заставить браузер понять что "пустое значение" это и есть новое значение?