Не сохраняется изменение в <td> элементе при использовании innerHTML
Вопрос на грани Selenium и JavaScript.
В тесте пытаюсь изменить значение ячейки таблицы. Так как стандартный sendKeys с этим не умеет работать, решил использовать JavaScriptExecutor. С помощью метода executeScript вызываю выполнение innerHTML, всё ок, при запуске теста команда меняет значение в ячейке (визуально это вижу при воспроизведении), но как только фокус уходит с ячейки (попытка нажать кнопку сохранения или клик по другой ячейке) - возвращается старое значение в этой ячейке.
Вот так выглядит ячейка в Developer Tools:
<td атрибуты>::before "20"</td>
Команда, которой меняю значение.
js.executeScript("arguments[0].innerHTML = 21", driver.findElement(By.cssSelector(...));
Значение меняется с 20 на 21, но потом опять становится 20.
Источник: Stack Overflow на русском