Selenium报错:'function' object has no attribute 'click'问题求助
问题解决:AttributeError: 'function' object has no attribute 'click'
你遇到的核心问题是错误地将预期条件函数本身赋值给了变量,而非获取到实际的页面元素对象。
EC.element_to_be_clickable是Selenium提供的一个预期条件函数,它本身并不是页面元素。你直接把它赋值给button变量,导致button实际上是一个函数对象,而非可操作的WebElement,所以调用click()时会抛出属性错误。
修正后的代码
首先确保你已经导入WebDriverWait:
from selenium.webdriver.support.ui import WebDriverWait
然后替换你原来的按钮定位代码:
# 等待10秒,直到元素可点击,返回实际的WebElement对象 button = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH,'.//button[contains(@class,"Component-button-d")]')) ) button.click()
补充说明
WebDriverWait().until()会执行传入的预期条件函数,直到元素满足条件(这里是可点击),然后返回对应的页面元素实例。- 不需要额外的
if button:判断——如果until()超时未找到符合条件的元素,会直接抛出TimeoutException,能执行到button.click()就说明元素已经存在且可点击。 - 你的XPath是正确的,所以修正后应该能正常点击目标按钮。
内容的提问来源于stack exchange,提问作者aa03
相关产品推荐
相关产品推荐

