radio框选择选项,直接用WebElement的click方法,模拟用户点击就可以了。
比如, 我们要在下面的html中:
1.先打印当前选中的老师名字
2.再选择 小雷老师
<div id="s_radio">
<input type="radio" name="teacher" value="小江老师">小江老师<br>
<input type="radio" name="teacher" value="小雷老师">小雷老师<br>
<input type="radio" name="teacher" value="小凯老师" checked="checked">小凯老师
</div>
对应的代码如下
# 获取当前选中的元素
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()
其中 #s_radio input[name="teacher"]:checked
里面的 :checked
是CSS伪类选择
表示选择 checked 状态的元素,对 radio 和 checkbox 类型的input有效
这个点上去就是 选择,所以我们必须先获取复选框的状态,然后再考虑是否点击
Selenium 专门提供了一个 Select类 进行操作。
1.select_by_value(‘’)根据选项的 value属性值 ,选择元素。
2.select_by_index(‘’)根据选项的 次序 (从1开始),选择元素
3.select_by_visible_text(‘’)根据选项的 可见文本 ,选择元素。
4.deselect_by_index(‘’)根据选项的次序,去除 选中元素
5.deselect_by_visible_text(‘’)根据选项的可见文本,去除 选中元素
6.deselect_all(‘’)去除 选中所有元素
多选就是多模拟点击几次