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 的伪类选择器,可用于获取已被选中的 radio 或 checkbox 元素。


☑️ 二、操作 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 中对表单元素进行自动化操作的常见方法和注意点。

相关推荐
武天旭43 分钟前
AI安全--AI大模型的毒性偏见与安全对齐实践
人工智能·python·深度学习
番茄啊1 小时前
linux 开启xftp连接
linux·运维·服务器
IT利刃出鞘2 小时前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
Lsetea2 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
视觉小萌新2 小时前
AI Class 3 · Chapter 2-3:函数、异常、文件读写+JSON / JSONL 读写(小白版)
人工智能·python·json
Julien20042 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
小小张说故事3 小时前
Python 的 obj.x 到底按什么顺序找?拆开数据描述符、实例字典和 __getattr__ 那条优先级链
python
十碗饭吃不饱3 小时前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
好用斋3 小时前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器
用户11481867894844 小时前
水印的实现方式逻辑
前端·python