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 异常,您可以尝试以下方法:

  1. 等待元素可见或可交互:
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 秒,直到元素可点击。

  1. 使用 JavaScript 点击元素:
driver.execute_script("arguments[0].click();", element)

这种方法绕过 Selenium 的默认点击机制,直接使用 JavaScript 点击元素。

  1. 尝试使用不同的定位方法来定位元素。

如果以上方法都无法解决问题,可能是你的定位方法不正确。尝试使用不同的定位方法,例如 ID、CSS 选择器或其他 XPath 表达式。

希望这些方法可以帮助你解决 ElementNotInteractableException 异常!

Selenium 4.13 报错 ElementNotInteractableException: 如何获取元素信息和解决不可交互问题

原文地址: https://www.cveoy.top/t/topic/gFq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录