1. Selenium send_keys() 基础入门
刚开始接触Web自动化测试时,我最先学会的就是send_keys()这个神奇的方法。它就像你的虚拟手指,可以帮你在网页上输入任何内容。记得第一次用它在百度搜索框里自动输入"Hello World"时,那种成就感至今难忘。
send_keys()是Selenium WebDriver提供的一个核心方法,主要作用就是模拟键盘输入。无论是文本框、密码框还是富文本编辑器,只要是能接收键盘输入的元素,它都能搞定。在实际项目中,我经常用它来测试表单提交、搜索功能和各种输入验证场景。
先来看个最简单的例子:
python复制from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
search_box = driver.find_element_by_name("wd")
search_box.send_keys("自动化测试")
search_box.submit()
这段代码做了三件事:打开浏览器访问百度、找到搜索框、输入"自动化测试"并提交。虽然简单,但已经包含了自动化测试的基本流程。新手常犯的错误是没等页面加载完就急着操作元素,我建议加上显式等待:
python复制from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.NAME, "wd"))
)
element.send_keys("这次不会出错了")
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 表单测试实战技巧
表单测试是自动化测试中最常见的场景之一。去年我负责一个电商项目,光登录表单就有十几种验证逻辑。send_keys()帮了大忙,特别是测试各种边界值时。
2.1 登录表单验证
测试登录表单时,我通常会准备以下几类测试用例:
- 正常邮箱+密码组合
- 错误格式的邮箱(缺少@符号)
- 超长密码测试
- 特殊字符测试
python复制# 邮箱格式验证测试
email_field = driver.find_element_by_id("email")
email_field.send_keys("invalid.email") # 故意缺少@符号
submit_button.click()
# 验证错误提示是否出现
error_message = driver.find_element_by_class_name("error-message")
assert "请输入有效的邮箱地址" in error_message.text
2.2 动态表单处理
现代网页很多都是动态加载的,我遇到过最坑的是一个注册表单,选择不同国家会动态改变手机号输入框的格式。处理这种场景的关键是等待元素准备好:
python复制# 选择国家后等待手机输入框出现
country_select = driver.find_element_by_id("country")
country_select.select_by_value("US")
phone_input = WebDriverWait(driver, 5).until(
EC.presence_of_element_located((By.ID, "phone"))
)
phone_input.send_keys("1234567890") # 美国格式号码
3. 高级输入技巧
掌握了基础用法后,我发现send_keys()还能玩出很多花样。比如模拟快捷键操作、处理富文本编辑器等。
3.1 组合键操作
测试一个在线文档编辑器时,我需要验证各种快捷键是否正常工作:
python复制from selenium.webdriver.common.keys import Keys
text_area = driver.find_element_by_id("editor")
text_area.send_keys("测试文本")
# 全选文本
text_area.send_keys(Keys.CONTROL + "a")
# 加粗
text_area.send_k
