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


簡介  這篇文章主要介紹了元素定位之css selector(選擇器定位)以及相關的經驗技巧,文章約3036字,瀏覽量448,點贊數5,值得參考!

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

1、css可以通過元素的 id,class,標簽 這三個常規屬性直接定位到

      tips:若用id定位,則用 #。若用class定位,則用 . 
      下面是百度搜索框的HTML代碼:     

     通過css selector定位有如下三種常規方式:
   find_element_by_selector("#kw")     (#表示通過id定位)
      find_element_by_selector(".s_ipt")     (. 表示通過class定位)
      find_element_by_selector("標簽名“”)   其實單純通過標簽名來定位元素,是有很大局限性的,因為一個頁面中,非常大可能的
      存在標簽名的重復,因此無法很精確的定位。

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

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

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

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

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

7、直接在瀏覽器復制

 

 

以上就是本文的全部內容,希望對大家的學習有所幫助,本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。 原文地址:https://blog.csdn.net/qq_15947787/article/details/121188401


免責聲明!

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



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