3 xpath高階語法 css高階語法

2021-10-19 13:55:08 字數 2121 閱讀 6729

xpath 使用路徑表示式來選取 xml 文件或html文件上的節點或節點集,分別有絕對路徑、相對路徑兩種表達方式。

缺點:webdriver會將整個頁面的所有元素進行掃瞄以定位我們所需要的元素,若指令碼中大量使用xpath做元素定位,指令碼的執行速度會變慢

表示式描述

.選取當前節點

..選取當前節點的父節點

/從根節點擊取,預設情況下當前節點是 html

//從匹配選擇的當前節點擊擇文件中的節點,而不考慮它們的位置

nodename

選取此節點的所有子節點,類似 css 中的標籤選擇器

@選取屬性

絕對路徑定位

以「/」開頭,從最頂層html開始往下找,像資料夾一樣寫的完整路徑

缺點:一旦頁面結構發生改變,路徑也隨之失效,必須重新定位

相對路徑定位

以「//」開頭,可以用任意層級的元素作為起點

索引定位:

//input[2]   表示匹配任意節點下的第二個input標籤

屬性定位:

表示式含義/*[@class]

表示匹配下一級中,所有具備class屬性的任意標籤

//div[@id=『abc』 and @class=『abc』]

表示匹配任意節點下,id為abc且class為abc的div標籤

//div[starts-with(@id,『kw』)]

表示匹配任意節點下,id開頭為kw的div標籤

//div[contains(@id,『kw』)]

表示匹配任意節點下,id包含kw的div標籤

選擇器表達示例

解釋id選擇器(id用 #表示)

#abc

匹配id為abc的標籤

class選擇器(class用 .表示)

.abc

匹配class為abc的標籤

標籤選擇器

p匹配p標籤

分組選擇器

a,span

匹配 a 標籤和 span標籤

屬性選擇器—指定值

[class=「li」]

匹配class為li的標籤

屬性選擇器—不指定值

[title]

匹配屬性有title的標籤

屬性選擇器—指定標籤

a[title]

匹配屬性有title的a標籤

屬性選擇器—匹配單詞邊界

a[title~=「hello」]

匹配title包含hello的a標籤

後代選擇器(空格表示),可選取當前層級下的任意層級元素

#ab p

匹配id為ab的下一/多級p標籤

子元素選擇器(>表示),只能選擇下一級的元素

#ab>p

匹配id為ab的下一級中的p標籤

相鄰兄弟選擇器(+表示),只能選擇同級的下乙個元素

#ab+.ab

匹配id為ab的同級下一元素且該元素的class為ab才能匹配到

後續兄弟選擇器(~表示),選取指定元素後的所有同級指定元素

.ab~li

匹配class為ab的標籤後的所有同級li標籤

偽類

表示式描述nth-child(n)

匹配第 n 個子元素

nth-last-child(n)

匹配倒數第n個子元素

nth-of-type(n)

匹配第 n 個指定型別的標籤

first-child

匹配第乙個標籤

last-child

匹配最後乙個標籤

定位元素注意事項:

1、css是配合html來工作,原理是匹配物件;而xpath是配合xml工作的,原理是遍歷,故css效能更優秀

2、css語言比xpath更簡潔明瞭

3、前段開發主要是使用css,不使用xpath,所以在技術上面,我們可以獲得幫助的機會非常多

CSS 高階語法

你可以對選擇器進行分組,這樣,被分組的選擇器就可以分享相同的宣告。用逗號將需要分組的選擇器分開。在下面的例子中,我們對所有的標題元素進行了分組。所有的標題元素都是綠色的。h1,h2,h3,h4,h5,h6 根據 css,子元素從父元素繼承屬性。但是它並不總是按此方式工作。看看下面這條規則 body根...

CSS 高階語法

你可以對選擇器進行分組,這樣,被分組的選擇器就可以分享相同的宣告。用逗號將需要分組的選擇器分開。在下面的例子中,我們對所有的標題元素進行了分組。所有的標題元素都是綠色的。h1,h2,h3,h4,h5,h6根據 css,子元素從父元素繼承屬性。但是它並不總是按此方式工作。看看下面這條規則 body根據...

CSS 高階語法

你可以對選擇器進行分組,這樣,被分組的選擇器就可以分享相同的宣告。用逗號將需要分組的選擇器分開。在下面的例子中,我們對所有的標題元素進行了分組。所有的標題元素都是綠色的。h1,h2,h2,h3,h5,h6 根據 css,子元素從父元素繼承屬性。但是它並不總是按此方式工作。看看下面這條規則 body根...