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("咱們版初中七年級語文上冊")
相關文章
相關標籤/搜索