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

相关推荐
空影星29 分钟前
免费在线图片合成视频工具 ,完全免费
python·flask·电脑·智能硬件
向上的车轮2 小时前
Odoo与Django 的区别是什么?
后端·python·django·odoo
czhc11400756634 小时前
Linux 830 shell:expect,ss -ant ,while IFS=read -r line,
linux·运维·r语言
Source.Liu4 小时前
【学Python自动化】 2. Windows Python 解释器使用笔记
windows·python·自动化
竹子_234 小时前
《零基础入门AI:YOLOv2算法解析》
人工智能·python·算法·yolo
滴滴滴嘟嘟嘟.4 小时前
嵌入式Linux驱动开发:蜂鸣器驱动
linux·运维·驱动开发
hit56实验室4 小时前
腾讯云的运维笔记——从yum的安装与更新源开始
运维·笔记·腾讯云
成都极云科技6 小时前
裸金属服务器与虚拟机、物理机的核心差异是什么?
运维·服务器·数据库
MThinker6 小时前
k230 按键拍照后,将摄像头拍照的1920*1080分辨率的图片以jpg文件格式,保存到板载TF存储卡的指定文件夹目录中
python·嵌入式硬件·智能硬件·micropython·canmv·k230
Tipriest_6 小时前
求一个整数x的平方根到指定精度[C++][Python]
开发语言·c++·python