Исключение ElementNotInteractableException возникает, когда элемент найден, но вы не можете выполнять над ним никаких действий. Например, вы можете нажать или вызвать ключи отправки, но в конечном итоге операция не будет выполнена.
Такая ситуация может возникнуть по нескольким причинам:
- Элемент не отображается / отображается не полностью
- Элемент за кадром
- Элемент, скрывающийся за другими элементами или скрытый сам
- Требуется какое-то действие, чтобы выполнить его, чтобы включить
это.
В таких случаях вы можете попробовать следующие подходы: -
1. Подождите, пока элемент не станет видимым или кликабельным
WebDriverWait letsWait = new WebDriverWait(driver, timeout);
letsWait.until(ExpectedConditions.visibilityOf(item));
letsWait.until(ExpectedConditions.elementToBeClickable(item));
2. Прокручивайте, пока элемент не появится под дисплеем
Actions act = new Actions(driver);
act.moveToElement(item);
3. Используйте JavaScript для обработки элемента DOM
JavascriptExecutor jScript = (JavascriptExecutor) driver;
jScript.executeScript("var item = document.querySelector('locator'); item.value = 'your choice';")
Однако вы также можете прочитать эту ветку GitHub об этой проблеме, поскольку некоторые другие сталкиваются с ней также в своих соответствующих сценариях: https://github.com/SeleniumHQ/selenium/issues/5037
Кстати, здесь есть объяснение обработки загрузки файлов с использованием Selenium , вы можете проверить другой подход или попробовать Java вместо Python.