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("我們版初中七年級語文上冊")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM