Selenium 4.13 报错 ElementNotInteractableException: 如何获取元素信息和解决不可交互问题
Selenium 4.13 报错 ElementNotInteractableException: 如何获取元素信息和解决不可交互问题
在使用 Selenium 4.13 时,你可能会遇到 selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable 错误。这意味着 Selenium 无法与目标元素交互,例如点击或输入文本。
获取元素信息和属性
即使元素不可交互,你仍然可以使用 Selenium 的 get_attribute() 方法获取其所有信息和属性。以下是一个示例代码:
from selenium import webdriver
driver = webdriver.Chrome()
# 打开网页
driver.get("https://example.com")
# 定位元素
element = driver.find_element_by_xpath("//input[@name='username']")
# 获取元素的所有信息和属性
tag_name = element.tag_name
text = element.text
attribute_value = element.get_attribute("attribute_name")
# 打印元素的信息和属性
print("Tag Name:", tag_name)
print("Text:", text)
print("Attribute Value:", attribute_value)
# 关闭浏览器
driver.quit()
请注意,您需要将 attribute_name 替换为您要获取的属性的名称。
解决 ElementNotInteractableException 异常
要解决 ElementNotInteractableException 异常,您可以尝试以下方法:
- 等待元素可见或可交互:
 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@name='username']")))
这段代码会等待最多 10 秒,直到元素可点击。
- 使用 JavaScript 点击元素:
 
driver.execute_script("arguments[0].click();", element)
这种方法绕过 Selenium 的默认点击机制,直接使用 JavaScript 点击元素。
- 尝试使用不同的定位方法来定位元素。
 
如果以上方法都无法解决问题,可能是你的定位方法不正确。尝试使用不同的定位方法,例如 ID、CSS 选择器或其他 XPath 表达式。
希望这些方法可以帮助你解决 ElementNotInteractableException 异常!
原文地址: https://www.cveoy.top/t/topic/gFq 著作权归作者所有。请勿转载和采集!