в использовании Selenium руководить Web При автоматизации тестирования мы можем столкнуться с различными нештатными ситуациями. один из них ElementNotInteractableException
аномальный,Обычно это означает, что возникла проблема при попытке взаимодействия с элементами страницы. В этой статье будет подробно описана причина этого исключения и возможное решение.,И предоставьте примеры кода, которые помогут вам лучше понять и справиться с этой ситуацией.
ElementNotInteractableException
Исключения обычно возникают при следующих обстоятельствах:
<iframe>
или <frame>
внутренняя этикетка,Вам необходимо переключиться на правильный кадр, прежде чем вы сможете взаимодействовать с элементом.против ElementNotInteractableException
Исключение, мы можем использовать следующее Решение:
WebDriverWai
В сочетании с условным ожиданием достижения.ExpectedConditions.visibilityOfElementLocated
Условие ожидания, пока элемент станет видимым.<frame>
внутренний,Нам нужно переключиться наframe
внутренний Только тогда можноруководитьдействовать。Вот пример кода, который демонстрирует, как обрабатывать ElementNotInteractableException
аномальный. Допустим, мы хотим нажать кнопку, но кнопка может быть не видна до тех пор, пока не загрузится страница.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# Создать экземпляр браузера
driver = webdriver.Chrome()
# открыть страницу
driver.get("https://example.com")
try:
# Используйте стратегию ожидания, чтобы дождаться, пока кнопка станет видимой и интерактивной.
button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "my-button"))
)
# Прежде чем нажимать на кнопку, убедитесь, что кнопка видна.
button.click()
except ElementNotInteractableException:
print("Кнопка не интерактивная и невидимая")
finally:
driver.quit()
В этом примере мы использовали WebDriverWait
дождаться, пока кнопка станет интерактивной, а затем попытаться нажать ее. Если кнопка не является интерактивной или видимой, исключение перехватывается и выводится соответствующая информация.
Элементы не интерактивныаномальный Прямо сейчасElementNotInteractableException
даSelenium Одной из распространенных проблем при тестировании обычно является то, что состояние взаимодействия элементов страницы не соответствует ожиданиям. Используя соответствующие стратегии ожидания, гарантируя видимость элементов и проверяя их состояние, мы можем лучше обрабатывать такие исключения, тем самым повышая стабильность и надежность автоматического тестирования.