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

如何在网页中通过标签输入内容?WebDriver方法报错求助

问题解决步骤

1. 定位方法的版本适配

新版本Selenium(4.x及以上)已废弃find_elements_by_class_name这类旧API,需改用基于By类的新定位方式,使用前需导入对应模块:

from selenium.webdriver.common.by import By

2. 修正元素定位的错误

  • 你使用了find_elements_by_class_name(复数形式),返回结果是元素列表,列表对象没有send_keys方法,必须用find_element(单数形式)定位单个输入框元素。
  • 目标输入框的class属性包含FL和H100P两个类名,CLASS_NAME定位方式仅支持传入单个类名,改用CSS_SELECTOR可精准匹配多个类名组合。

3. 修正后的代码示例

方法一:CSS_SELECTOR定位(推荐)

from selenium.webdriver.common.by import By

# 定位输入框并输入内容
input_box = self.driver.find_element(By.CSS_SELECTOR, "input.FL.H100P")
input_box.send_keys('Test')

方法二:单个CLASS_NAME定位(需确保类名唯一)

from selenium.webdriver.common.by import By

# 任选一个唯一的类名进行定位
input_box = self.driver.find_element(By.CLASS_NAME, "FL")
# 或
input_box = self.driver.find_element(By.CLASS_NAME, "H100P")
input_box.send_keys('Test')

4. 额外优化:添加元素加载等待

若页面加载较慢,建议添加显式等待,避免因元素未加载完成导致定位失败:

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_box = WebDriverWait(self.driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "input.FL.H100P"))
)
input_box.send_keys('Test')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:48:24