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

Selenium WebDriver Python向指定textarea插入文本的方法咨询

解决Selenium向指定textarea插入文本的问题

我来帮你搞定这个问题~首先得说清楚你之前代码失败的原因:find_element_by_class_name方法只能接受单个类名,你传入的"ng-pristine ng-valid ng-touched"是多个空格分隔的类名,这不符合这个方法的使用规则,所以才找不到目标元素。

下面给你几种可靠的解决方案,按推荐程度排序:

方案1:通过ng-model属性定位(最推荐)

因为ng-model="applications"是这个textarea的核心绑定属性,通常不会轻易变动,定位稳定性最高:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 初始化driver(根据你的浏览器调整,比如Chrome/Firefox)
driver = webdriver.Chrome()

# 定位目标textarea
textarea_element = driver.find_element(By.CSS_SELECTOR, 'textarea[ng-model="applications"]')
# 或者用XPATH写法
# textarea_element = driver.find_element(By.XPATH, '//textarea[@ng-model="applications"]')

# 插入文本(替换成你要输入的内容)
textarea_element.send_keys("你要插入的文本内容")

方案2:通过多类名的CSS选择器定位

如果你想用类名定位,需要用CSS选择器的多类名语法(类名之间用.连接):

# 注意类名要匹配当前textarea的实际class(你提供的是ng-valid ng-dirty ng-valid-parse ng-touched)
textarea_element = driver.find_element(By.CSS_SELECTOR, "textarea.ng-valid.ng-dirty.ng-valid-parse.ng-touched")
textarea_element.send_keys("你要插入的文本内容")

额外提示:处理动态加载的元素

如果这个textarea是页面动态加载出来的,直接定位可能会报错NoSuchElementException,这时候需要用显式等待:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 等待元素可被定位,最长等待10秒
textarea_element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CSS_SELECTOR, 'textarea[ng-model="applications"]'))
)
textarea_element.send_keys("你要插入的文本内容")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:55:59