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

无头模式下点击下拉菜单遇ElementClickInterceptedException问题求助

问题:无头模式下点击下拉菜单触发ElementClickInterceptedException异常

尝试点击下拉菜单时,仅在无头(headless)模式下遇到ElementClickInterceptedException异常。查看报错截图发现下拉菜单明明已被点击,但系统未识别该操作,情况反常。

当前启用无头模式的代码

Open Browser Window
    [Arguments]    ${LANGUAGE_CODE}
# NOTE: Chrome Options is needed for Jenkins to have the 1920 x 1080 size
    Open Browser    ${LOGIN URL}    ${BROWSER}  options=add_argument("--lang\=${LANGUAGE_CODE}");add_argument("--headless");add_argument("--window-size=1920,1080");
    Maximize Browser Window

点击下拉菜单的代码

${visible}  Run Keyword And Return Status  Element Should Be Visible  ${ppp_cmbGrid}
    Run Keyword If  ${visible}
    ...  Click Element    ${ppp_cmbGrid}

已尝试的解决方案

调整浏览器启动参数,添加--start-maximized和--disable-blink-features=AutomationControlled:

Open Browser Window
    [Arguments]    ${LANGUAGE_CODE}
# NOTE: Chrome Options is needed for Jenkins to have the 1920 x 1080 size
    Open Browser    ${LOGIN URL}    ${BROWSER}  options=add_argument("--lang\=${LANGUAGE_CODE}");add_argument("--window-size=1920,1080");add_argument("--start-maximized");add_argument("--headless")

额外添加的参数:

add_argument('--disable-blink-features=AutomationControlled')

仍出现的报错信息

ElementClickInterceptedException: Message: element click intercepted: Element <div class="combobox custom" style="width: calc(100% - 1px); text-align: left;">...</div> is not clickable at point (951, 224). Other element would receive the click: <span class="dropdown-placeholder" style="height: 45px;">...</span>
  (Session info: headless chrome=114.0.5735.198)
Stacktrace:
Backtrace:
    GetHandleVerifier [0x00728893+48451]
    (No symbol) [0x006BB8A1]
    (No symbol) [0x005C5058]
    (No symbol) [0x005F4BA4]
    (No symbol) [0x005F36E8]
    (No symbol) [0x005F1EEB]
    (No symbol) [0x005F12FE]
    (No symbol) [0x005E9AAC]
    (No symbol) [0x0060A2BC]
    (No symbol) [0x005E9586]
    (No symbol) [0x0060A614]
    (No symbol) [0x0061C482]
    (No symbol) [0x0060A0B6]
    (No symbol) [0x005E7E08]
    (No symbol) [0x005E8F2D]
    GetHandleVerifier [0x00988E3A+2540266]
    GetHandleVerifier [0x009C8959+2801161]
    GetHandleVerifier [0x009C295C+2776588]
    GetHandleVerifier [0x007B2280+612144]
    (No symbol) [0x006C4F6C]
    (No symbol) [0x006C11D8]
    (No symbol) [0x006C12BB]
    (No symbol) [0x006B4857]
    BaseThreadInitThunk [0x75EA7D59+25]
    RtlInitializeExceptionChain [0x77CEB74B+107]
    RtlClearBits [0x77CEB6CF+191]

可行解决方案

1. 定位真正可点击的元素

报错明确显示,点击会被<span class="dropdown-placeholder">元素接收,说明你原定位的${ppp_cmbGrid}只是容器,实际触发下拉的是这个placeholder元素。直接修改定位器,定位该span后再点击:

${visible}  Run Keyword And Return Status  Element Should Be Visible  ${ppp_cmbPlaceholder}  # 替换为placeholder的定位表达式
    Run Keyword If  ${visible}
    ...  Click Element    ${ppp_cmbPlaceholder}

2. 用JavaScript强制点击

如果不想修改定位器,可通过JavaScript绕过元素遮挡检测,直接触发点击事件:

Run Keyword If  ${visible}
    ...  Execute JavaScript  arguments[0].click();  ${ppp_cmbGrid}

3. 升级无头模式参数

Chrome 112+版本推出了更接近正常浏览器的新无头模式,替换旧的--headless为--headless=new,同时避免--window-size与--start-maximized混用(两者存在冲突):

Open Browser Window
    [Arguments]    ${LANGUAGE_CODE}
# NOTE: Chrome Options is needed for Jenkins to have the 1920 x 1080 size
    Open Browser    ${LOGIN URL}    ${BROWSER}  options=add_argument("--lang\=${LANGUAGE_CODE}");add_argument("--headless=new");add_argument("--window-size=1920,1080");add_argument("--disable-blink-features=AutomationControlled")

4. 增加可点击等待

元素可见不代表已完全就绪可点击,添加等待步骤确保元素状态正常:

${visible}  Run Keyword And Return Status  Element Should Be Visible  ${ppp_cmbGrid}
    Run Keyword If  ${visible}
    ...  Wait Until Element Is Clickable  ${ppp_cmbGrid}  timeout=10s
    ...  Click Element    ${ppp_cmbGrid}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:27:38