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

为什么Selenium的click方法运行无报错但页面无响应,控制台执行却正常?

问题原因

你定位到的<span>元素是纯展示节点,LinkedIn并未将点击事件绑定在该元素上,因此Selenium执行点击动作无报错,但不会触发查看反应列表的交互效果。

解决方案

1. 调整定位规则,选中实际绑定交互事件的元素

LinkedIn帖子的反应计数交互实际绑定在计数外层的按钮元素上,修改定位逻辑即可:

from selenium.webdriver.common.by import By

# 先定位目标帖子
post = driver.find_element(By.XPATH, "//div[@class='occludable-update ember-view']")
# 定位反应计数外层的可点击按钮
like_btn = post.find_element(By.XPATH, ".//button[contains(@class, 'social-details-social-counts__reactions')]")

注:find_element_by_* 系列方法在Selenium 4.0+版本已废弃,建议统一使用find_element(By.定位方式, 定位值)的写法。

2. 使用JavaScript执行点击

如果调整定位后仍无响应,可改用JS直接触发点击事件,跳过Selenium原生点击的交互校验:

try:
    driver.execute_script("arguments[0].click();", like_btn)
    print('点击触发成功')
except WebDriverException:
    print('元素不可点击')

3. 增加显式等待确保元素就绪

部分情况下元素渲染完成但交互事件未绑定完成,增加显式等待避免时序问题:

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

wait = WebDriverWait(driver, 10)
like_btn = wait.until(EC.element_to_be_clickable(
    (By.XPATH, ".//button[contains(@class, 'social-details-social-counts__reactions')]")
))
driver.execute_script("arguments[0].click();", like_btn)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:27:05