#selenium #automated-tests #selenide #react-dropzone
#selenium #автоматизированные тесты #selenide #реагировать-dropzone
Вопрос:
Я не могу очистить скрытый ввод нескольких файлов с помощью selenium.
Исходный код HTML
<input type="file" multiple style="display: none"/>
Selenium
webElement.sendKeys(file1.absolutePath); // 👌🏻 file1 added
webElement.sendKeys(file2.absolutePath); // ⚠ appends file2
webElement.sendKeys(file3.absolutePath); // ⚠ appends file3
/// and so on
Файлы просто непрерывно добавляются во входные данные, и нет очевидного способа это очистить. Я показал элемент ввода для целей отладки, и все файлы были помещены в поле.
Я пытался использовать WebElement.clear()
, sendKeys(Keys.BACK_SPACE)
и несколько других. Никто не работает со скрытым элементом ввода.
Комментарии:
1. вы могли бы использовать execute_script для удаления атрибута value. Или установите значение в «». Почему вы хотели очистить?
2. React-dropzone обрабатывает файл сразу после его добавления в поле. SendKeys просто добавляют новые поля в список, поэтому загружается 1-й файл, затем загружаются 1sn и 2-й, затем 1-й, 2-й и 3-й и т.д. И у меня есть список загрузок, таких как «1, 1, 2, 1, 2, 3» это не то, чего я ожидал
Ответ №1:
Просто возьмите тег и используйте driver.execute
, чтобы изменить значение этого тега.
js = "document.getElement(By.tagName("input")).value = " file2.absolutePath;
driver.execute_script(js).