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

相关推荐
ZhengEnCi几秒前
P3H1-Python-sys模块完全指南-系统参数与命令行参数处理利器
python
猫头虎1 分钟前
如何解决pip install网络报错SSLError: TLSV1_ALERT_PROTOCOL_VERSION(OpenSSL过旧)问题
网络·python·scrapy·pycharm·beautifulsoup·pip·scipy
8***84822 分钟前
Nginx三种安装方式
运维·nginx
帮帮志3 分钟前
05【AI大模型对话/创建项目】通过pycharm创建大模型项目,关联Anaconda环境
ide·人工智能·python·语言模型·pycharm
海边夕阳20064 分钟前
【每天一个AI小知识】:什么是目标检测?
人工智能·python·深度学习·目标检测·机器学习·计算机视觉·目标跟踪
咖啡の猫7 分钟前
Python分支结构
服务器·网络·python
凉、介17 分钟前
Linux 下的 time_before/time_after 接口
linux·运维·服务器·学习
Blossom.11818 分钟前
基于Mamba-2的实时销量预测系统:如何用选择性状态空间干掉Transformer的O(n²)噩梦
人工智能·python·深度学习·react.js·机器学习·设计模式·transformer
Wise玩转AI20 分钟前
Day 26|智能体的“伦理与安全边界”
人工智能·python·安全·ai·chatgpt·ai智能体