xpath和css selector的使用方法

2022-06-08 08:51:08 字數 2111 閱讀 8127

什麼是xpath?

xpath是xml的路徑語言,通俗一點講就是通過元素的路徑來查詢到這個標籤元素

1、xpath支援id、class、name定位功能

//*[@id='inner1'],@代表通過屬性定位

//*[@class='inner']

//*[@name='name']

2、如果標籤沒有id、class、name三種屬性,xpath還支援屬性定位功能,只要你是唯一屬性,就可以定位,無論是預設屬性還是自定義屬性,

@代表以屬性定位,後面可以接標籤中任意屬性

//*[@type='text']

3、當標籤的屬性重複時,xpath提供了通過標籤來進行過濾

將*換為任意標籤名,則可根據標籤進行篩選,如頁面中有多個input框,可以把*換成input,後面再寫屬性,整體的寫法就是//input[@id='i1']

4、當標籤頁重複時,xpath提供了層級過濾,

例如:找不到兒子,那麼就先找他的爸爸,實在不行可以再找他的爺爺,xpath提供了索引過濾,通過索引,在list中定位屬性,與python的索引有些差別,xpath從1開始

支援通過/進行層級遞進,找到符合層級關係的標籤,只有xpath擁有角標定位,css沒有這種方式

//*[@class='driver'][1]/div[2]/input

5、上面幾種如果都用上了之後還重複的話,我們就可以使用xpath提供的終極神器,邏輯運算定位。and或or,

通過and來縮小過濾的範圍,只有條件都符合時才能定位到

//input[@value='彈框' and @onclick='alertnow();']

or就相反了,只要這些篩選中,其中乙個出現那麼就匹配到了

//select[@name='city'or@size='4']

什麼是css selector?

css selector定位實際就是html的css選擇器的標籤定位,

1、css selector支援id、class的定位,與html中css定位相同

#後面直接寫上id的值,如#i1,.代表class,class定位還提供了多個class定位,通過連續.來縮小範圍

.c1.c2.c3,.j_cat.a-all.on有空格就輸入.,也可以input#i1input.classname

2、css selector支援任意屬性定位

屬性定位方式與xpath相同,直接中括號,加上屬性就可以了

[placeholder='div的id是inner1'],placeholder沒有重複的

3、css selector提供了多屬性組合過濾

css selector的多屬性組合選擇過濾,沒有and,只需要多個[]連線就可以

select[name='city'][size='4'][multiple='multiple']

4、css selector也支援層級關係定位

與xpath的不同css selector通過>來區分層級的界定,如果定位到裡面沒有唯一的屬性供css來定位,只能用到xpath

select>option[value='3']

5、css selector模糊匹配

^=匹配屬性以什麼開頭

[href^='/bug-create']

$=匹配屬性以什麼結尾

input[value$='值']

*=匹配屬性包含什麼值

input[value*='值']

XPath 用法和例項

usage xpath usr bin env python coding utf 8 date 2017 09 24 20 51 15 author kangvcar kangvcar 126.com link version id 安裝 pip install lxml 路徑表示式 表示式 描述...

XPath說明 XPath資料型別和運算符號

xpath xpath是一種xml路徑表示式,用於在xsl等技術中確定xml文件的節點位置。表示式確定了一顆使用url路徑符號的xml文件節點樹,並且可以使用謂詞和函式篩選節點。xpath節點有元素節點和屬性,元素節點名稱由xml命名空間字首和本地字串組成,命名空間可以為null。還有一種特殊的元素...

關於xpath中的 和

在今天之前,一直沒有注意過.的用法,習慣性的都是用 來查元素。比如在 menu title 中找id div1 的 div 我們可以用 div id div1 webdriver webelement we driver.findelement by.xpath div id div1 如果要繼續找...