selenium元素定位篇:css定位


在webUI自動化中,通過xpath基本上可以搞定所有的元素定位。但還有一種更為高效的定位方式:css定位。相比xpath定位,css定位的性能或者效率更高。

css定位方式:
方式一:單一屬性或標簽名定位
1,標簽名定位:
以百度首頁為例:

 

 

 我們可以看到,input標簽名有23個。
所以,僅僅通過標簽名的css定位有很大局限性。
拓展:通過標簽+屬性名(沒有屬性值)也可以進行定位

2,通過單一屬性id定位
在css定位中,通過id定位時,需要用#符號表示

 

我們可以看到,input#su就可以定位到id屬性值為su的input標簽了。

3,通過單一屬性class定位
在css定位中,通過class定位時,需要使用.符號來表示。

 

 

 從圖中例子我們可以看出一個細節點:在css定位中,通過class定位時,class屬性值中有空格時,說明該class屬性有多個屬性值,我們定位的時候只能通過其中一個來進行定位,如果需要進行多個class屬性值來定位,則用多個.來標識(區別於xpath定位,xpath定位class時,進行精確的定位需要講class的屬性值寫全)。

 

 

 

 

 

 可以看到,用到bg和s_btn時,每個屬性值前都加了.。

3,通過其他屬性值定位
格式:標簽名[屬性名=屬性值]
如:span[name='tj_settingicon']

 

 

 

方法二:屬性組合定位
css可以通過多個屬性組合定位
舉例:a.mnav[href='http://news.baidu.com']
例子中css定位到class屬性為mnav,href屬性為http://news.baidu.com的a標簽。
我們就能知道,通過多個屬性定位時,只要講屬性都寫出來即可(和xpath不同,xpath通過多個屬性進行組合定位時,需要用到邏輯運算符and,or等等)

方法三:屬性值模糊匹配
模糊匹配1:匹配屬性值中的其中一個,~=

語法:標簽名[屬性名~=屬性值]
如:span[class~='bg'],可以定位到class屬性為含有bg的span標簽。

 

模糊匹配2:匹配開頭:
css匹配以某個字符串開頭的屬性,用^=
語法:標簽名[屬性名^=屬性值開頭部分]
舉例:input[class^='bg'],這樣可以定位到class屬性值為bg開頭的input標簽

 

 

模糊匹配3:匹配結尾
語法:標簽名[屬性名$=屬性值結尾部分]
舉例:input[class$='s_btn'],這樣可以定位到class屬性值以s_btn結尾的input標簽了。

 

 

方法四:層級定位
在xpath中,用/來表示下一層。在css中用>來表示下一層

 

 

關於css的層級定位,待補充完整!


免責聲明!

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



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