编辑框与选择框操作定位方法

编辑框操作:
  清空输入框: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()
原文地址:https://www.cnblogs.com/aiyumo/p/11783190.html