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

Python Selenium报错unknown error: cannot focus element,无法输入搜索框

解决Selenium中"unknown error: cannot focus element"的问题

嘿,我一眼就看出问题所在啦——你之前定位的是外层的<div id="ccodeinput">元素,但真正能接收输入的是它包裹的<input>标签啊!div本身是块级元素,没法获取焦点也不能输入内容,这就是为啥会抛出unknown error: cannot focus element的错误。

给你几个靠谱的解决办法,按顺序试试就行:

  • 直接定位正确的input元素
    你可以通过input的name属性来定位,这是最直接的方式:

    # 用name属性定位输入框
    inputElement = chrome_driver.find_element_by_name('CCODE')
    inputElement.send_keys("435435")
    

    或者通过父div来定位子input,确保不会找错:

    # 先找到外层div,再定位里面的input
    ccode_container = chrome_driver.find_element_by_id('ccodeinput')
    inputElement = ccode_container.find_element_by_tag_name('input')
    inputElement.send_keys("435435")
    
  • 加上显式等待确保元素可交互
    如果页面加载有延迟,可能元素还没准备好,用显式等待等它可点击再操作:

    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 最多等待10秒,直到input元素可点击
    inputElement = WebDriverWait(chrome_driver, 10).until(
        EC.element_to_be_clickable((By.NAME, 'CCODE'))
    )
    inputElement.send_keys("435435")
    
  • 先激活输入框再输入
    有些输入框需要先点击激活才能输入,你可以加上点击步骤:

    inputElement = chrome_driver.find_element_by_name('CCODE')
    inputElement.click()  # 点击激活输入框
    inputElement.clear()  # 清除原有默认值(如果需要的话)
    inputElement.send_keys("435435")
    

你之前能点击搜索按钮,说明页面加载是正常的,核心问题就是定位错了元素,换成里面的input就没问题啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:54:33