selenium UI自動化測試之CSS元素定位語法詳解


前言

大部分人在使用selenium定位元素時,用的是xpath元素定位方式,因為xpath元素定位方式基本能解決定位的需求。xpath元素定位方式更直觀,更好理解一些。

css元素定位方式往往被忽略掉了,其實css元素定位方式也有它的價值;相對於xpath元素定位方式來說,css元素定位方式更快,語法更簡潔。

css元素定位:通過元素的標簽或者元素的id、class屬性定位

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

2、舉例:如下是百度輸入框的的html代碼:

<input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd"/>

①css元素定位使用#號表示id屬性,如:#kw

②css元素定位方式使用.表示class屬性,如.s_ipt

③css元素定位方式也可以直接使用標簽名稱,而沒有任何標識符,如:input

css元素定位:通過元素的其它屬性定位

1、css元素定位除了可以通過標簽、class、id這三個常規屬性定位外,也可以通過元素的其它屬性定位。例如:

三、css元素定位:通過標簽與屬性的組合來定位元素

四、css元素定位:通過元素的層級關系來定位

1、css元素定位可以達到類似xpath元素定位通過元素的層級關系來定位,例如:

xpath元素定位: //form[@id='form']/span/input 和 //form[@class='fm']/span/input 也可以用css實現

五、css元素定位:通過元素的並列索引來定位

1、以下圖為例:與四相似。

2、css元素定位也可以通過索引option:nth-child(1)來定位子元素,這點與xpath寫法用很大差異,其實很好理解,直接翻譯過來就是第幾個小孩

六、css元素定位:通過對元素屬性的邏輯運算來定位

1、css同樣也可以實現邏輯運算,同時匹配兩個屬性,這里跟xpath不一樣,無需寫and關鍵字。

七、處理selenium中的css_selector定位元素的模糊匹配問題

① 匹配元素的id屬性,先指定一個html標簽,然后加上“#”符號,再加上id的屬性值。

driver.find_element_by_css_selector('div#ID').click()

匹配元素的class屬性,先指定一個html標簽,然后加上“.”符號,再加上class的屬性值。

driver.find_element_by_css_selector('div.CLASS').click()

③匹配元素的其他屬性。【這里不再是‘.’或者‘#’符號,而是采用了"標簽名[屬性名=屬性值]"的方式定位元素】

driver.find_element_by_css_selector('div[name=NAME]').click()

④組合匹配【支持定位元素對象通過兩組或兩組以上的屬性】

driver.find_element_by_css_selector('div[name=NAME][type=TYPE]').click()

⑤匹配頭部

driver.find_element_by_css_selector('div[style^="sp.gif"]').click()

⑥匹配尾部

driver.find_element_by_css_selector('div[style$="sp.gif"]').click()

⑦匹配中間

driver.find_element_by_css_selector('div[style*="sp.gif"]').click()

 


免責聲明!

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



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