CSS和XPath都是頁面元素定位的方式,但是二者的語法和功能卻存在較大的差異。
CSS定位: element { attribute: value; }
首先,CSS是以樣式為主要的語法形式,而XPath則是以路徑為主要的語法形式。
XPath定位: //tagname[@attribute='value']
CSS的選擇器比XPath顯得簡潔,一般只需要編寫標簽名稱、類名和ID即可定位頁面元素。而XPath則需要使用路徑形式,通過標簽、屬性、父子元素、兄弟元素,往往需要寫的比較長。
CSS選擇器: div.className #id XPath路徑: //*[@id='id_value']/div[1]/ul/li[3]
另外,CSS對樣式控制較強,可以對應用范圍內的元素做出統一的樣式處理,而XPath則主要用于查找元素并獲取其屬性值或文本內容。
CSS樣式控制: , .class_name, #id { property: value; } XPath獲取文本: //*[contains(text(),'text')]
此外,CSS對于復雜布局的頁面元素位置的定位也不是十分方便,此時就需要通過XPath來定位元素。
CSS布局定位: 無法定位 XPath布局定位: //parent::div/following-sibling::div/child::table/descendant::td[position()=2]
總之,CSS和XPath各有優劣,在使用中需要結合頁面元素的情況靈活選擇使用。