Selenium 操作表单选择控件【selenium】

🔘 一、操作 Radio 单选框

Radio 按钮是网页表单中常见的控件之一,用于从多个选项中选择一个。Selenium 中可以使用 click() 方法模拟点击行为。

示例场景

HTML 示例:

复制代码
<input type="radio" name="teacher" value="小江老师">小江老师<br>
<input type="radio" name="teacher" value="小雷老师">小雷老师<br>
<input type="radio" name="teacher" value="小凯老师" checked="checked">小凯老师

步骤:

  1. 获取当前被选中的单选按钮;

  2. 输出其值;

  3. 选择"小雷老师"。

    element = wd.find_element(By.CSS_SELECTOR, '#s_radio input[name="teacher"]:checked')
    print("当前选中老师是:", element.get_attribute('value'))

    wd.find_element(By.CSS_SELECTOR, '#s_radio input[value="小雷老师"]').click()

🔍说明::checked 是 CSS 的伪类选择器,可用于获取已被选中的 radiocheckbox 元素。


☑️ 二、操作 Checkbox 多选框

Checkbox 与单选框不同,它允许多选。使用 click() 方法同样可以勾选或取消勾选,但需注意:避免重复点击导致误操作

示例 HTML:

复制代码
<input type="checkbox" name="teacher" value="小江老师">小江老师<br>
<input type="checkbox" name="teacher" value="小雷老师">小雷老师<br>
<input type="checkbox" name="teacher" value="小凯老师" checked="checked">小凯老师

操作策略:

  • 先取消已勾选的项;

  • 再选择想要的项目,例如"小雷老师"。

    取消已有选中的所有项

    selected = wd.find_elements(By.CSS_SELECTOR, '#s_checkbox input[name="teacher"]:checked')
    for item in selected:
    item.click()

    勾选小雷老师

    wd.find_element(By.CSS_SELECTOR, "#s_checkbox input[value='小雷老师']").click()

📌 提醒:Checkbox 一次点击会切换选中状态,操作前最好确认当前状态。


🔽 三、操作 Select 下拉框

<select> 是专门用于下拉菜单的标签。Selenium 提供了 Select 类来操作这类控件,支持单选或多选。

常用方法:

  • select_by_value(value):根据 value 属性值选中;
  • select_by_index(i):按索引选择,从 0 开始;
  • select_by_visible_text(text):按文本内容选择;
  • deselect_* 方法族用于取消选择,仅对 多选框 有效;
  • deselect_all():取消所有已选项(多选专用)。

✅ 单选框操作

复制代码
from selenium.webdriver.support.ui import Select

select = Select(wd.find_element(By.ID, "ss_single"))
select.select_by_visible_text("小雷老师")

即便有其他项已被选中,也会自动替换,无需手动清除。


✅ 多选框操作

多选框需要在选择前清空已有的选中项,否则可能出现冲突。

复制代码
from selenium.webdriver.support.ui import Select

select = Select(wd.find_element(By.ID, "ss_multi"))

# 清空原选项
select.deselect_all()

# 选择多个老师
select.select_by_visible_text("小雷老师")
select.select_by_visible_text("小凯老师")

🧠 小结

|----------|----------------|----------------------------|---------------|
| 控件类型 | 定位方式 | 操作方式 | 注意事项 |
| radio | CSS + :checked | click() | 同组只能选一个 |
| checkbox | CSS + :checked | 判断状态再 click() | 多选,避免重复点击取消选择 |
| select | Select 类封装方法 | select_by_* / deselect_* | 多选框需先清空再多选 |

以上就是 Selenium 中对表单元素进行自动化操作的常见方法和注意点。

相关推荐
WJ.Polar几秒前
Python数据容器-集合set
开发语言·python
smppbzyc23 分钟前
2025年亚太杯(中文赛项)数学建模B题【疾病的预测与大数据分析】原创论文讲解(含完整python代码)
python·数学建模·数据分析·数学建模竞赛·亚太杯数学建模·亚太杯
MarkGosling28 分钟前
【开源项目】网络诊断告别命令行!NetSonar:开源多协议网络诊断利器
运维·后端·自动化运维
无敌的牛34 分钟前
Linux基础开发工具
linux·运维·服务器
xiaocainiao88135 分钟前
Python 实战:构建可扩展的命令行插件引擎
开发语言·python
Edingbrugh.南空35 分钟前
实战指南:用pmap+gdb排查Linux进程内存问题
linux·运维·服务器
一筐大白菜啊1 小时前
【工具】什么软件识别重复数字?
测试工具
朱颜辞镜花辞树‎1 小时前
GitHub 操作指南:项目协作与自动化工作流实践
运维·自动化·github
孙克旭_2 小时前
day051-ansible循环、判断与jinja2模板
linux·运维·服务器·网络·ansible
运器1232 小时前
【一起来学AI大模型】PyTorch DataLoader 实战指南
大数据·人工智能·pytorch·python·深度学习·ai·ai编程