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

如何使用Selenium自动切换页面?解决ElementClickInterceptedException点击拦截问题

解决Selenium元素点击被iframe拦截的问题

这个错误原因很直观:你要点击的分页按钮被页面右下角的聊天iframe(ipcc_chat_iframe)挡住了,导致Selenium的原生点击操作无法触发目标元素。下面给你几个实用的解决办法:

方法1:隐藏遮挡的iframe

直接用JavaScript把那个碍事的聊天框隐藏掉,这样就不会挡住分页按钮了:

# 在点击分页按钮之前先执行这段代码
driver.execute_script("document.getElementById('ipcc_chat_iframe').style.display = 'none';")

方法2:用JavaScript直接点击目标元素

如果不想隐藏iframe,可以跳过Selenium的原生点击,直接用JS触发元素的点击事件——这种方式不受元素遮挡的影响:

endPage = 5
for page in range(1, endPage + 1):  # 注意:如果要包含第5页,这里要改成endPage+1
    print("Page: ", page)
    target_element = wait.until(EC.visibility_of_element_located((By.XPATH, "//table[@class='gridview']/tbody/tr[22]/td/table/tbody/tr//td/span//following::td["+str(page)+"]/a")))
    # 用JS点击替代原生click()
    driver.execute_script("arguments[0].click();", target_element)

方法3:滚动到目标元素位置再点击

把目标元素滚动到视口中完全可见的位置,避免被遮挡:

endPage = 5
for page in range(1, endPage + 1):
    print("Page: ", page)
    target_element = wait.until(EC.visibility_of_element_located((By.XPATH, "//table[@class='gridview']/tbody/tr[22]/td/table/tbody/tr//td/span//following::td["+str(page)+"]/a")))
    # 滚动到元素位置,确保完全可见
    driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", target_element)
    target_element.click()

另外提个小细节:你的循环range(1, endPage)会只遍历1到4页(因为range是左闭右开的区间),如果要包含第5页,记得把循环范围改成range(1, endPage + 1)哦。

内容的提问来源于stack exchange,提问作者donald.sys

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 02:44:06