Не меняется обычным способом поле time на UI. Как исправить? Автотест
public static void addTimeEndByOperation() {
$(byAttribute(ATT_NAME, OPERATION.getAttValue())).shouldBe(visible.because("Секция <Операции не отображается>"));
finishTime.shouldBe(visible);
finishTime.doubleClick();
JavascriptExecutor js = (JavascriptExecutor)webdriver();
js.executeScript("w = document.getElementsByClassName(`user-update__container validation-text ts-invalid hasDataset ng-star-inserted\")[1]; " +
"w.onclick = function() {w.innerText = \"07:00\"}");
/*((JavascriptExecutor) getWebDriver()).executeScript("document.querySelector('//table-intersection-cell[@celltype='time'][@class='user-update__container validation-text ts-invalid hasDataset ng-star-inserted']').setAttribute('0000', '0700')");*/
/*finishTime.doubleClick().sendKeys(Keys.NUMPAD0);*/
finishTime.shouldBe(visible);
finishTime.shouldHave(text("07:00")).shouldBe(visible.because("Время окончания работ отображается некорректно"));
Пробовал так:
finishTime.sendKeys("0700", Keys.ENTER);
finishTime.val("0700");
finishTime.setValue("0700");
finishTime.setValue(SetValueOptions.withText("0700"))
И ничего. Через JS что-то не меняет.
Что делать? Что не так в коде? Подскажите пожалуйста.
Это для автотеста.
Ответы (1 шт):
Автор решения: Vasiliy Volgin
→ Ссылка
Нашел решение через actions
Actions actions = new Actions(WebDriverRunner.getWebDriver());
actions
.doubleClick(finishTime)
.pause(100)
.sendKeys("0700")
.sendKeys(Keys.ENTER)
.build()
.perform();