selenium基础学习-选择框
1.radio框:
元素标签名:input
radio框选择选项,直接用WebElement的click方法,模拟用户点击就可以了。
from selenium import webdriver wd = webdriver.Chrome() wd.implicitly_wait(10) wd.get('http://cdn1.python3.vip/files/selenium/test2.html') # 获取当前选中的元素 element = wd.find_element_by_css_selector('#s_radio [checked="checked"]') # 打印当前老师的名字 print(element.get_attribute('value')) # 选择小雷老师 wd.find_element_by_css_selector('#s_radio [value="小雷老师"]').click() wd.quit()
2.checkbox框
元素标签名:input
对checkbox进行选择, 是直接用 WebElement 的 click 方法,模拟用户点击选择
需要注意的是,要选中checkbox的一个选项,必须 先获取当前该复选框的状态
,如果该选项已经勾选了,就不能再点击。否则反而会取消选择。
所以思路可以是这样的:
- 先把 已经选中的选项全部点击一下,确保都是未选状态
- 再点击需要选择的内容
from selenium import webdriver wd = webdriver.Chrome() wd.get('http://cdn1.python3.vip/files/selenium/test2.html') wd.implicitly_wait(10) # 先把 已经选中的选项全部点击一下 elements = wd.find_elements_by_css_selector('#s_checkbox [checked="checked"]') for element in elements: element.click() # 再点击需要选择的 wd.find_element_by_css_selector('#s_checkbox [value="小雷老师"]').click() wd.quit()
3.select选择框:
元素标签名:select
对于Select 选择框, Selenium 专门提供了一个 Select类
进行操作。
选择元素:
select_by_value:根据选项的 value属性值
,选择元素。
select_by_index:根据选项的 次序
(从0开始),选择元素
select_by_visible_text:根据选项的 可见文本(即尖括号之间的内容)
,选择元素。
去除选中元素:
deselect_by_value:根据选项的value属性值, 去除
选中元素
deselect_by_index:根据选项的次序,去除
选中元素
deselect_by_visible_text:根据选项的可见文本,去除
选中元素
deselect_all:去除
选中所有元素
1.select单选框:不管原来选的是什么,直接用Select方法选择即可
# 导入select类 from selenium.webdriver.support.select import Select from selenium.webdriver.support.ui import Select # 创建select对象 select = Select(wd.find_element_by_id('ss_single')) # 通过select对象选中对应选项 select.select_by_visible_text('小雷老师')
2.select多选框:要选中某几个选项,要注意去掉原来已经选中的选项
# 导入select类 from selenium.webdriver.support.select import Select # 创建select对象 select = Select(wd.find_element_by_id('ss_multi')) # 清楚所有已经选中的选项 select.deselect_all() # 通过select对象选中对应选项 select.select_by_visible_text('小雷老师') select.select_by_visible_text('小凯老师')