zoukankan      html  css  js  c++  java
  • 编辑框与选择框操作定位方法

    编辑框操作:
      清空输入框:ele.clear()
      获取输入框已经输入的文本:input_ele.get_attribute('value')
      单选框操作(radio button):
      定位元素,调用click()方法
    勾选框操作(CheckBox):
      通过is_selected()查看元素是否处于选中状态
      调用click()进行选择
    复选框操作:
      有两种,第一种是可以选择多个元素的多选下拉框
      对应的HTML:
      <select multiple>
        <option value="benz">奔驰S300</option>
        <option value="accord">雅阁</option>
      </select>
    第二种,只能选择一个元素的单选下拉框
      对应的HTML:
      <select>
        <option value="male">男</option>
        <option value="female" selected="selected">女</option>
      </select>


      操作:
      将元素用Select类包装一下
      模拟选择(两种下拉框都通用):调用select_by_visible_text(),参数是option元素的文本值
      取消选择(仅限第一种选择框):deselect_by_visible_text()
      取消所有选择(仅限第一种选择框):deselect_all()

      查找元素:
        1、找到select元素
        WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//select[@name="ft"]')))
        select_ele = driver.find_element_by_xpath('//select[@name="ft"]')
        2、实例化select类:
        s = Select(select_ele)
        3、查找方式:
          方式一:value属性值
          s.select_by_value('xls')
          方式二:index下标,下标从0开始
          s.select_by_index(4)
          方式三:可见文本内容
          s.select_by_visible_text('所有格式')

    例子:

    获取编辑框值:

       

    driver.get('http://www.baidu.com')
    ele = driver.find_element_by_id('kw')
    ele.send_keys('python')
    time.sleep(2)
    value = ele.get_attribute('value')
    print(value)

    勾选框操作(CheckBox):

    eles = driver.find_elements_by_css_selector('div input')
    for ele in eles:
        if ele.is_selected():# 判断是否已选中
            ele.click() # 如果选中则取消选中
        else:
            ele.click() # 如果没选中则选

    复选框操作:

    se = driver.find_element_by_id('multi')
    
    # 根据value来选择
    Select(se).select_by_value('benz')
    Select(se).select_by_value('accord')
    # 根据visible_text来选择
    Select(se).select_by_visible_text('奔驰S300')
    # 根据索引值来选择 index从0开始
    Select(se).select_by_index(0)
    # 根据value值来取消选中
    Select(se).deselect_by_value('benz')
    # 根据text来取消选中
    Select(se).deselect_by_visible_text('奔驰S300')
    # 全部取消选中
    Select(se).deselect_all()
    
    # 复选框操作 :单选
    Select(se).deselect_by_visible_text('') # 会报错NotImplementedError: You may only deselect options of a multi-select
    time.sleep(3)
    driver.quit()
  • 相关阅读:
    rest_framework学习之路
    jQuery操作cookie
    Cookie和Session
    HTTP之Content-Type
    HTTP协议
    Python之random模块
    HTML5(FileRdeader)
    Python之re模块
    LINQ基础 之 LINQ TO SQL (二)
    LINQ基础(一)
  • 原文地址:https://www.cnblogs.com/aiyumo/p/11783190.html
Copyright © 2011-2022 走看看