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

Selenium操作Instagram评论框报错:AttributeError: 'NoneType'无send_keys属性

解决Selenium操作Instagram评论框出现的AttributeError: 'NoneType' object has no attribute 'send_keys'问题

我来帮你拆解下问题根源,以及对应的解决办法:

错误的核心原因

你的代码里存在两个关键问题:

  1. 变量赋值逻辑错误:你把driver.find_element_by_xpath(...).click()的结果赋值给了barra_commenti,但click()方法的返回值是None,这直接导致后续调用send_keys时,变量是None类型,触发报错。
  2. 定位元素对象错误:你定位的是评论框所在的<form>元素,但实际需要输入内容的是嵌套在form里的<textarea>元素——form本身不支持send_keys输入操作。

修正后的代码方案

我们需要先激活评论框(点击form或textarea均可),再正确定位到textarea元素执行输入。另外,建议用WebDriverWait替代time.sleep,这能更可靠地等待元素加载完成,避免页面加载延迟导致的元素找不到问题。

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

# 等待评论框表单加载并点击激活
comment_form = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//form[.//textarea[@aria-label='Aggiungi un commento...']]"))
)
comment_form.click()

# 等待textarea元素可见并定位它
comment_textarea = WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.XPATH, "//textarea[@aria-label='Aggiungi un commento...']"))
)
# 执行输入操作
comment_textarea.send_keys("ciao")

为什么手动用Selenium Chrome扩展操作正常?

手动操作时,你是直接点击并输入到textarea元素里,和代码里错误定位form、错误赋值变量的逻辑完全不同,所以不会出现问题。

你也可以简化代码,直接定位textarea并完成激活+输入:

comment_textarea = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//textarea[@aria-label='Aggiungi un commento...']"))
)
comment_textarea.click()
comment_textarea.send_keys("ciao")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:37:45