You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python的Selenium无法点击元素问题求助

问题解决:Selenium元素交互错误及ActionChains使用修正

首先修正AttributeError错误

你当前的代码有两个明显错误:

  1. move_to_element 不属于WebDriver对象,它是ActionChains类的方法,必须先导入该类并通过实例调用
  2. driver.atbb.click() 完全错误,atbb是你定义的元素变量,直接调用atbb.click()即可

正确的ActionChains使用示例

先导入ActionChains:

from selenium.webdriver.common.action_chains import ActionChains

替换错误的三行代码:

atbb = driver.find_element(By.CSS_SELECTOR, "[data-test-id='product_add_to_bag']")
# 移动到元素并执行动作(必须调用perform()才会生效)
ActionChains(driver).move_to_element(atbb).perform()
# 点击元素
atbb.click()

也可以把动作链式调用简化:

ActionChains(driver).move_to_element(atbb).click(atbb).perform()

解决最初的ElementNotInteractableException错误

这个错误本质是元素未完全加载、被遮挡或不在可视区域,仅靠滚动不一定可靠,更推荐用显式等待确保元素可交互:

显式等待实现代码

先导入相关模块:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

替换查找元素的代码,等待元素可交互后再点击:

# 最多等待10秒,直到元素可点击
atbb = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "[data-test-id='product_add_to_bag']"))
)
atbb.click()

极端情况:JS强制点击

如果元素仍无法交互,可使用JavaScript强制点击绕过页面限制:

driver.execute_script("arguments[0].click();", atbb)

完整修正后的代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

driver.get("SITE")
driver.execute_script("document.getElementById('attentive_overlay').remove();")

# 执行搜索
driver.find_element(By.ID, "search_bar_input").send_keys("preservation kit")
driver.find_element(By.ID, "search_bar_input").send_keys(Keys.ENTER)

# 等待元素可交互并点击
atbb = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "[data-test-id='product_add_to_bag']"))
)
atbb.click()

内容的提问来源于stack exchange,提问作者JellyHands

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 22:05:02