簡介 這篇文章主要介紹了元素定位之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
