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

Selenium爬取LinkedIn Sales Navigator出现ElementClickInterceptedException如何解决

问题分析

ElementClickInterceptedException报错核心有两个问题,还有一处明显的逻辑漏洞:

  • 显式等待语法错误:wait.until(EC.element_to_be_clickable(lead.click()))写法完全错误,EC.element_to_be_clickable的入参应该是元素/元素定位器,你直接在入参里执行lead.click(),等于还没做可点击判断就提前触发了点击操作,完全不符合显式等待的逻辑。
  • 元素被遮挡:报错里明确提到你要点击的按钮被account-sticky-header类的悬浮头部挡住了,LinkedIn Sales Navigator的固定顶栏会挡住滚动到顶部附近的元素,导致点击被拦截。
  • 页面数据源逻辑错误:你点击按钮打开新标签页后,没有切换到新标签页的页面对象,soup如果还是基于原标签页的内容解析,自然拿不到新页面的线索数据。
修复方案

修复后的代码如下:

from selenium.webdriver.common.action_chains import ActionChains
from bs4 import BeautifulSoup
import time

lead_links = []
# 建议换成CSS选择器定位多类元素,兼容性更好
leads_button = browser.find_elements_by_css_selector('.button--unstyled.t-16.font-weight-600.nowrap-ellipsis')
original_window = browser.current_window_handle  # 保存原标签页句柄

for lead in leads_button:
    wait = WebDriverWait(browser, 10)
    # 先等待元素可点击
    wait.until(EC.element_to_be_clickable(lead))
    # 把元素滚动到视口中间,避免被顶部悬浮头挡住
    browser.execute_script("arguments[0].scrollIntoView({block: 'center'});", lead)
    time.sleep(0.5)
    # 直接用JS执行点击,绕过前端点击拦截校验
    browser.execute_script("arguments[0].click();", lead)
    
    # 等待新标签页打开,切换到新标签页
    wait.until(EC.number_of_windows_to_be(2))
    for window_handle in browser.window_handles:
        if window_handle != original_window:
            browser.switch_to.window(window_handle)
            break
    # 等待新页面加载完成
    wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.artdeco-entity-lockup__title')))
    
    # 用新标签页的内容初始化soup,再提取数据
    soup = BeautifulSoup(browser.page_source, 'html.parser')
    leads = soup.find_all("div", attrs={
        'class': 'artdeco-entity-lockup__title artdeco-entity-lockup__title--alt-link ember-view'})
    for lead_person in leads:
        lead_links.append(lead_person.a["href"])
    
    # 关闭当前标签页,切回原页面处理下一个按钮
    browser.close()
    browser.switch_to.window(original_window)
    time.sleep(1) # 加延迟避免触发反爬

额外注意

  • 操作频率不要太高,LinkedIn反爬机制严格,频繁操作容易触发验证码甚至封号。
  • 如果你不需要操作页面交互,也可以直接提取按钮里的跳转链接,用requests请求对应页面,性能更高也不容易出现点击异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:09:01