🔘 一、操作 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">小凯老师
步骤:
- 获取当前被选中的单选按钮;
- 输出其值;
- 选择“小雷老师”。
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 中对表单元素进行自动化操作的常见方法和注意点。