元素定位之css selector(選擇器定位)


語法find_element_by_css_selector("css選擇器定位策略”)   或者  find_elements_by_css_selector("css選擇器定位策略”)

1,css屬性定位:
a,css可以通過元素的 idclass 標簽 這三個常規屬性直接定位到。
      tips:若用id定位,則用 #。若用class定位,則用
      下面是百度搜索框的HTML代碼:
      
      通過css selector定位有如下三種常規方式:
   find_element_by_selector("#kw")     (#表示通過id定位)
      find_element_by_selector(".s_ipt")     (. 表示通過class定位)
      find_element_by_selector("標簽名“”)   其實單純通過標簽名來定位元素,是有很大局限性的,因為一個頁面中,非常大可能的
      存在標簽名的重復,因此無法很精確的定位。

b,css通過其他屬性定位。
      通過 標簽+屬性  即 標簽名[屬性名=屬性值]。 還是以百度搜索框為例:
      find_element_by_css_selector("input[autocomplete='off']")
      tips:和xpath定位不同的是,標簽名前不用// ,[ ]內的屬性名前不用@符號,而xpath則需要。其余的規則與xpath相同。
 
      如果屬性是唯一的,那么標簽名可以不用寫。

c,層級定位。
      通過 父標簽[父標簽屬性名=父標簽屬性值]>(或者空格)子標簽    我們以百度搜索按鈕為例:
      find_element_by_css_selector("span[class='bg s_btn_wr']>input")
      通過搜索按鈕的父標簽中的class屬性定位,然后找到其子標簽input,也就是我們的搜索按鈕元素所在。

d,索引定位。
      當父標簽中有很多相同的子標簽時,通過索引找到所需要定位的元素。
      通過 父標簽[父標簽屬性名=父標簽屬性值]>子標簽:nth-child(索引序號) 
      tips:索引從1開始
      我們以126郵箱的密碼輸入框為例:
      find_element_by_css_selector("div[class='u-input box]>input:nth-child(2)')
      記住:用css_selector進行元素定位,父標簽到子標簽都用>或空格。如果用的是>,意思是指第一個子標簽
      而用空格的話,則可以為任何子標簽。

e, 邏輯定位。
       在xpath中,邏輯定位用到“and”,"or",“not”,而在我們的css_selector中,則不需要。
       通過 標簽名[標簽名1= 屬性值1][標簽名2=屬性值2]
       同樣,我們通過126郵箱的密碼輸入框為例:
        

 

 

 f, 模糊匹配。
       ^:以什么開頭
       $:以什么結尾
       *:匹配所有
       find_element_by_css_selector(“標簽名[屬性名*(或^,或$)='屬性值']”)
       


免責聲明!

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



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