selenium 处理选择框
选择框
常见的选择框包括radio框、checkbox框、select框
radio和checkbox
radio和checkbox对应input标签的type属性,分别表示单选和多选,选择时只需要对相应元素进行点击操作。
类型 | 性质 | 是否检查选择状态 | 说明 |
---|---|---|---|
radio | 单选 | 不需要检查 | 选择某个选项时直接点击,会自动取消选择其他选项 |
checkbox | 复选 | checked="checked"表示选中 | 选择某个选项时,先点击所有已选中选项,确保所有选项未选中,再点击所需选项 |
select类
select类用于对select标签的处理。
select标签中,multiple属性表示多选,option标签表示选项,selected表示选中状态。
select类的方法有:
方法 | 说明 |
---|---|
select_by_value() | 根据value属性值选择元素 |
select_by_index() | 根据选项的次序(从1开始)选择元素 |
select_by_visible_text() | 根据选项的可见文本选择元素 |
deselect_by_value() | 根据value属性值取消元素选中 |
deselect_by_index() | 根据选项的次序(从1开始)取消元素选中 |
deselect_by_visible_text() | 根据选项的可见文本取消元素选中 |
deselect_all() | 取消所有选中 |
单项选择
<select id="single_select">
<option value=value1>昨天</option>
<option value=value2 selected>今天</option>
<option value=value3>明天</option>
</select>
# 导入Select类
from selenium.webdriver.support.ui import Select
# 创建Select对象
select_object = Select(driver.find_element_by_id("single_select"))
# 通过Select对象选择“昨天”的三种方法
select_object.select_by_index(1)
select_object.select_by_value('value1')
select_object.select_by_visible_text('昨天')
多项选择
<select id="multi_select" multiple>
<option value=value1>昨天</option>
<option value=value2 selected>今天</option>
<option value=value3>明天</option>
</select>
# 导入Select类
from selenium.webdriver.support.ui import Select
# 创建Select对象
select_object = Select(wd.find_element_by_id("multi_select"))
# 清除所有 已经选中 的选项
select_object.deselect_all()
# 选择 昨天 和 今天
select_object.select_by_visible_text("昨天")
select_object.select_by_visible_text("今天")