webdriver--单选、复选及下拉框的定位

  • 单选radiobutton的操做

  两种状况,一种是各个button元素的属性都有惟必定位值,能够直接用属性惟一值定位;另外一种就是一组各方面属性值都同样的radiobutton,除了text,能够用组元素定位来操做css

#检测任务下各题型的radiobutton有惟一id值
driver.find_element_by_css_selector("#sinquestion").click()#选择检测任务:单选题

#基础信息下的各学科radiobutton全都同样,组定位.两种方式
driver.find_elements_by_css_selector("[name=SubjectName]").pop(1).click()

driver.find_elements_by_css_selector("[name=SubjectName]")[1].click()
  • 复选checkbox的操做 
#推送范围,遍历访问的方式所有勾选
for push in driver.find_elements_by_name("GroupName"):
    push.click()
    time.sleep(1)

  单个勾选的话也能够用下标索引和pop()索引来处理web

  • 下拉框的定位:select > option*x 结构,

   1. 定位父元素select,而后经过tag name找到全部option,获得option元素的数组,而后经过数组索引([1])定位,最后click.  数组

driver.find_element_by_id("BookName").find_elements_by_tag_name("option")[1].click()#选择下拉框的第一个教材

driver.find_element_by_id("BookName").find_elements_by_css_selector("[value=1419]").click()

   2. 用到了Select类, 实例select对象有不少方法:ui

deselect_all(),全不选。spa

deselect_by_index(index),不选index 项,index从0 仍是从1 开始了。code

deselect_by_value( value),不选元素value属性为value的项,听着有点拗口,其实value值就是option标签中value的值。对象

deselect_by_visible_text( text),不选标签innerHTML为text的optionblog

select_by_index( index),同上,选择第 index 项。这个用于 option的text和value不固定的状况索引

select_by_value( value), 同上,选择。element

select_by_visible_text( text),同上,选择。

1 #使用前需先引入Select类
2 from selenium.webdriver.support.ui import Select 
3  
4 select = Select(driver.find_element_by_id("BookName")) 
5 select.deselect_all()#大致意思是应该是先清空再选择,已经尝试过删除这句也能够选择成功,可能还没遇到失败的状况
6 select.select_by_visible_text("咱们版初中七年级语文上册")
相关文章
相关标签/搜索