自动化6-选择框

常见选择框包括:radio框,checkbox框,select框。

一、radio框(单选框)

  若要选中其中的一个,有基础的两种方式:

   * 基于input的属性,checked给默认选中状态(原网页所给的默认值,无法自己更改);

   * 用WebElement的click方法,模拟用户点击;

1 //HTML:
2 <div id="s_radio">
3     <input type=""radio" name="teacher" value="小江老师">小江老师</div>
4     <input type=""radio" name="teacher" value="小雷老师">小雷老师</div>
5     <input type=""radio" name="teacher" value="小凯老师" checked="checked">小凯老师</div>
6 </div>
1 from selenium import webdriver
2 wd=webdriver.Firefox(executable_path=t'D:BrowserDrivergeckodriver.exe')
3 wd.get('http://cdn1.python3.vip/files/selenium/test2.html')
4 element=wd.find_element_by_css_selector('#s_radio input[checked="checked"]')
5 print('这里选中的是:',element.get_attribute('value'))
6 wd.find_element_by_css_selector('#s_radio input[value="小江老师"]').click()

二、checkbox框(复选框)

  方法同上,click方法模拟用户点击选择。

  注意:要选中checkbox中的一个选项,必须先获取当前该复选框的状态(若该选项已勾选了,就不能再点击,否则反而会取消选择)

1 <div id="s_checkbox">
2   <input type="checkbox" name="teacher" value="小江老师">小江老师<br>
3   <input type="checkbox" name="teacher" value="小雷老师">小雷老师<br>
4   <input type="checkbox" name="teacher" value="小凯老师" checked="checked">小凯老师
5 </div>
1 from selenium import webdriver
2 wd = webdriver.Firefox(executable_path=r'D:BrowserDrivergeckodriver.exe')
3 wd.get('http://cdn1.python3.vip/files/selenium/test2.html')
4 # 先把已经选中的选项全部点击一下
5 elements = wd.find_elements_by_css_selector('#s_checkbox input[checked="checked"]')
6 for element in elements:
7     element.click()
8 # 再点击 小雷老师
9 wd.find_element_by_css_selector('#s_checkbox input[value="小雷老师"]').click()

三、select框

  select是个新的select标签,对于select选择框,Selenium提供了Select类进行操作。

  方法:

    1. select_by_value : 根据选项的value属性值,选择元素;   

      => deselect_by_value : 根据选项的value属性值,去除选中元素;

    2. select_by_index : 根据选项的次序(从0开始),选择元素;

      => deselect_by_index : 根据选项的次序,去除选中元素;

    3. select_by_visible_text : 根据选项的可见文本,选择元素;

      => deselect_by_visible_text : 根据选中的可见文本,去除选中元素;

    4. deselect_all :去除选中所有元素;

  

  1)select单选框:不管原来选的是什么,直接使用Select方法选择即可。

1 from selenium import webdriver
2 # 导入Select类
3 from selenium.webdriver.support.ui import Select
4 wd=webdriver.Firefox(executable_path=r'D:BrowserDrivergeckodriver.exe')
5 wd.get('http://cdn1.python3.vip/files/selenium/test2.html')
6 # 创建一个select对象
7 select=Select(wd.find_element_by_id('ss_single'))
8 # 通过Select对象选中小江老师
9 select.select_by_visible_text('小雷老师')

  

  2)select多选框:这个选择要注意先去掉原来已选中的选项

 1 from selenium import webdriver
 2 from selenium.webdriver.support.ui import Select
 3 wd = webdriver.Firefox(executable_path=r'D:BrowserDrivergeckodriver.exe')
 4 wd.get('http://cdn1.python3.vip/files/selenium/test2.html')
 5 select=Select(wd.find_element_by_id('ss_multi'))
 6 # 清楚所有的选中项
 7 select.deselect_all()
 8 # 选择小江老师和小雷老师
 9 select.select_by_visible_text('小江老师')
10 select.select_by_visible_text('小雷老师')
原文地址:https://www.cnblogs.com/Free-Ink/p/12568487.html