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

Python Selenium报错:dict对象无send_keys/get_attribute属性如何解决

Selenium 运行报错 AttributeError: 'dict' object has no attribute 'send_keys' 解决方法

该报错是由于find_element方法未正常返回Selenium WebElement对象,而是返回了字典类型的异常结果,按以下步骤排查即可解决:

1. 验证版本兼容性

Selenium、Chrome浏览器、ChromeDriver三者版本不匹配是触发该问题的最高发原因:

  • 首先查看本地Chrome浏览器版本:打开Chrome浏览器 -> 设置 -> 关于Chrome,即可看到当前大版本号
  • Selenium 4.6及以上版本内置了Selenium Manager,可自动匹配对应版本的ChromeDriver,不需要手动下载,直接升级Selenium到最新稳定版即可:
    pip install --upgrade selenium
  • 如果使用低于4.6的Selenium版本,需要手动下载和Chrome大版本一致的ChromeDriver,放置在脚本同级目录或者系统PATH路径下。

2. 修正驱动初始化代码

错误的驱动初始化配置也可能导致元素查找返回异常结果,可使用以下标准初始化写法替换原有代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

print("sample test case started")
# 配置Chrome启动参数
chrome_options = Options()
chrome_options.add_argument("--start-maximized")
# 初始化驱动
driver = webdriver.Chrome(options=chrome_options)
driver.get("替换为你实际要访问的目标URL")

# 加入显式等待,确保元素加载完成后再操作
element = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.ID, "Username"))
)
element.send_keys("替换为实际用户名")

driver.quit()
print("sample test case successfully completed")

3. 异常排查

如果按以上步骤操作后仍然报错,可以先做简单排查定位问题:

  • 执行driver.get后打印页面源码,确认页面正常加载:print(driver.page_source)
  • 确认目标页面的用户名输入框ID确实为Username,ID区分大小写,也可替换为By.NAME、By.XPATH等其他定位方式验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:18:00