Selenium 元素定位之css詳解

2021-10-05 16:50:46 字數 3057 閱讀 8840

表示式描述*

通用元素選擇器,匹配任何元素

e標籤選擇器,匹配所有使用e標籤的元素

.info

class選擇器,匹配所有class屬性中包含info的元素

#footer

id選擇器,匹配所有id屬性等於footer的元素

e,f多元素選擇器,同時匹配所有e元素或f元素,e和f之間用逗號分隔

e f後代元素選擇器,匹配所有屬於e元素後代的f元素,e和f之間用空格分隔

e > f

子元素選擇器,匹配所有e元素的子元素f

e + f

毗鄰元素選擇器,匹配緊隨e元素之後的同級元素f (只匹配第乙個)

e ~ f

同級元素選擇器,匹配所有在e元素之後的同級f元素

e[att=『val』]

屬性att的值為val的e元素 (區分大小寫)

e[att^=『val』]

屬性att的值以val開頭的e元素 (區分大小寫)

e[att$=『val』]

屬性att的值以val結尾的e元素 (區分大小寫)

e[att*=『val』]

屬性att的值包含val的e元素 (區分大小寫)

e[att1=『v1』][att2*=『v2』]

屬性att1的值為v1,att2的值包含v2 (區分大小寫)

e:contains(『***x』)

內容中包含***x的e元素

e:not(s)

匹配不符合當前選擇器的任何元素

定位xpath

css比較

所有元素

//**

選取所有元素

所有div

//div

div選取所有div節點

id//div[@id=『it』]

div#it

選取id值為』it』的元素

class

//div[@class=『cs』]

div.cs

選取class值為』cs』的元素

單屬性//div[@title=『ti』]

div[title=ti]

選取title屬性值為』ti』的元素

多屬性//div[@title=『ti』][@name=『na』]

div[title=ti][name=na]

選取title屬性值為』ti』,且name屬性值為』na』的元素

子元素//div[@id=『it』]/*

div#it>*

選取id值為』it』的div元素的所有子元素

後代元素

//div[@id=『it』]//h1

div#it h1

選取id值為』it』的div元素的所有後代h1元素

索引//li[3]

li:nth(3)

選取第三個li元素

函式//a[contains(@href,『hello』)];a//[starts-with(@href,『py』)]

a[href~=hello];a[href^=py]

href值包含』hello』的a元素;href值以』py』開頭的a元素

同級節點

//div[@id=『it』]/following-sibling::div

div#it+div

選取id值為"it"的div元素後面的所有同級div元素

屬性定位

id

driver.findelement(by.cssselector("input#kw"))

driver.findelement(by.cssselector("input[id=kw]"))

class

driver.findelement(by.cssselector("input.pwd"))

driver.findelement(by.cssselector("input[class=pwd]"))

//3.其它屬性

driver.findelement(by.cssselector("input[name='na']"))

//4.屬性組合定位

driver.findelement(by.cssselector("[name=『wd』][autocomplete=『off』]"))

模糊匹配

//1.屬性值由多個空格隔開,匹配其中乙個值

driver.findelement(by.cssselector(「input[class~=『btn』]」))

//2.匹配屬性值為字串開頭的方法

driver.findelement(by.cssselector(「input[class^=『btn』]」))

//3.匹配屬性值字串結尾的方法

driver.findelement(by.cssselector(「input[class$=『btn』]」))

//4.匹配屬性值中包含某一字串

driver.findelement(by.cssselector(「input[class*=『btn』]」))

層級定位

>f e下面的f這個元素

driver.findelement(by.cssselector(「book#kw>input[class=『btn』]」))

第n個e標籤

driver.findelement(by.cssselector(「book>input:nth-child(2)))

倒數第n個標籤

driver.findelement(by.cssselector(「book>input:nth-last-child(2)))

//4:e:first-child 第乙個標籤

driver.findelement(by.cssselector(「book>input:first-child))

//5:e:last-child 最後乙個標籤

driver.findelement(by.cssselector(「book>input:last-child))

Selenium之元素定位

1.檢視頁面元素 id class type name等。2.通過webdriver的方法定位 絕對路徑 find element by xpath html body div 1 div 1 div div 1 div form span 1 input 相對路徑 find element by ...

selenium元素定位之CSS

css是一種語言,用來描述html和xml文件的屬性,css使用選擇器來為頁面屬性繫結屬性。這些選擇器可以被selenium用來當做定位元素的策略。css選擇器常見的語法 選擇器舉例 描述.class dou class選擇器,選擇class dou 的所有元素 id gao id選擇器,選擇id ...

selenium之元素定位方法

4 class 5 link text 超連結文字 6 xpath 7 css定位 8 定位相同元素第二個 type text class s ipt name wd id kw maxlength 100 autocomplete off driver.find element by id kw ...