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

  • 单选radiobutton的操作

  两种情况,一种是各个button元素的属性都有唯一定位值,可以直接用属性唯一值定位;另一种就是一组各方面属性值都一样的radiobutton,除了text,可以用组元素定位来操作

#检测任务下各题型的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()索引来处理

  • 下拉框的定位: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对象有很多方法:

deselect_all(),全不选。

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

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

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

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

select_by_value( value), 同上,选择。

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("我们版初中七年级语文上册")
原文地址:https://www.cnblogs.com/minieye/p/5806911.html