zoukankan      html  css  js  c++  java
  • 自动化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('小雷老师')
  • 相关阅读:
    vue自动路由-单页面项目(非build时构建)
    建立多页面vue.js项目
    C#调用C++(QT5.5.1项目)的C++/CLI(CLR项目)项目技术笔记
    自建Socket转发,使用远程桌面(mstsc)连接家中电脑
    用Vue.js搭建一个小说阅读网站
    在CentOS中部署.Net Core2.1网站
    高价值干货:这可能是你见过最全的网络爬虫总结
    【DevCloud·敏捷智库】如何利用用户故事了解需求
    项目管理:如何显性管理并提升Story分解能力
    【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播
  • 原文地址:https://www.cnblogs.com/Free-Ink/p/12568487.html
Copyright © 2011-2022 走看看