Стандартный
input id=“ClientContactSignatureFile” name=“File” onchange=“showClientContactSignatureImage(this)” type=“file” value=""
Телериковский
input class=“file-input” type=“file” name=“AttachedFile” id=“wi-attached-file” max-len=“100000” onchange=“fileMngr.onFileChange()” style=“z-index: -1; width: 70px; overflow: hidden; display: none;”
В веб приложении есть два типа инпутов для аттача файлов. Один телериковский, второй обычный, стандартный. Оба ранее обрабатывались простым input.SendKeys(filePath) методом для аплоада файлов. После обновления Хрома на рабочих машинах с 58 до 62 версии стандартные инпуты перестали принимать файлы. Метод выполняется без ошибок и тест идет дальше. Телериковские работают ок.
Бежит автотест. Как должно быть:
- SendKeys(filePath);
- рядом с кнопкой аттача появляется миниатюра приаттаченого изображения
- Жмем Save и картинка сохраняется на странице там где ей положено быть
Как есть:
- SendKeys(filePath);
- превью не появляется, в value параметре инпута (не том что в DOM, а том что в пропертях элемента) числится путь к файлу
- после Save файл не числится загруженным
Вероятно ивент change не триггерится, что-то такое.
А теперь воспроизвожу руками. Два кейса.
№1:
- Запускаю браузер, захожу на страницу
- Кликаю по иконке, выбираю файл - превью есть
- Сохраняю - файл приаттачен
№2:
- Ставлю точку остановки перед SendKeys(filePath) методом
- Запускаю под дебагом автотест
- Тест становится на паузу
- Кликаю по иконке руками, выбираю файл - превью НЕТ
- Сохраняю - файл НЕ приаттачен
На версии Хрома 58 данной проблемы нет. На первый взгляд все понятно - ага, обновился браузер, появилась проблема. Но с чем тогда связан тот факт, что в руками запущенном браузере все ок, а в том что запущен автотестом - баг. Может кто сталкивался, идеи? Спасибо.