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

Selenium Python报错:'NoneType'对象无'send_keys'属性求解决

Selenium Python输入评论时出现AttributeError问题解决

问题现象

使用Selenium Python定位评论框并输入内容时,程序抛出以下错误:

AttributeError: 'NoneType' object has no attribute 'send_keys'

原代码如下:

no_show = driver.find_element(By.XPATH,"xpath")
no_show.click()
notes = WebDriverWait(driver,60).until(EC.element_to_be_clickable(("id","the id")))
time.sleep(2)
notes = driver.find_element("id", "__area0-inner").click() # 代码在此处出错
notes.send_keys("test")
print("test passed")

尝试过的其他方法:

  • 使用presence_of_element_located显式等待:
    element2 = WebDriverWait(driver,60).until(EC.presence_of_element_located(("id","the id")))
    
  • 调用notes.clear(),均无效。

错误原因分析

核心问题出在这一行:

notes = driver.find_element("id", "__area0-inner").click()

Selenium的.click()方法返回值是None,执行这行代码后,notes变量被覆盖为None,后续调用notes.send_keys("test")自然会触发NoneType没有send_keys属性的错误。

另外,可能存在元素定位混淆:你先用显式等待定位了"the id"元素,之后又去定位"__area0-inner",需要确认哪个才是真正可以输入的文本框元素——通常可输入的元素是<input>或<textarea>标签,而__area0-inner可能是文本框的内部容器,并非实际接收输入的元素。

修正方案

  1. 拆分点击和元素赋值操作,不要把.click()的返回值赋值给变量
  2. 确认并定位到真正可输入的文本框元素,再执行输入操作

修正后的代码示例:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time

# 关闭弹窗(假设no_show是关闭按钮)
no_show = driver.find_element(By.XPATH,"xpath")
no_show.click()

# 显式等待可输入的文本框元素(替换成实际可输入元素的定位方式)
# 优先用ID,若__area0-inner不是输入框,改用"the id"或其他定位器
notes = WebDriverWait(driver, 60).until(
    EC.element_to_be_clickable((By.ID, "the id"))  # 确保这是实际接收输入的元素
)

# 点击激活输入框(可选,部分输入框需要点击才能激活)
notes.click()

# 清除原有内容(可选,若输入框有默认文本)
notes.clear()

# 输入内容
notes.send_keys("test")

print("test passed")

额外注意事项

  • 避免用time.sleep()代替显式等待:显式等待会在元素出现时立即执行,比固定等待更高效可靠
  • 确认元素定位的正确性:打开浏览器开发者工具(F12),检查目标元素的标签类型,确保是<input>或<textarea>,且send_keys方法适用于该元素
  • 若遇到iframe嵌套:如果评论框在iframe内部,需要先切换到iframe再定位元素:
    driver.switch_to.frame("iframe_id_or_name")
    # 之后再定位并操作元素
    # 操作完成后切回主文档
    driver.switch_to.default_content()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 00:05:16