超碰人人人人人,亚洲AV午夜福利精品一区二区,亚洲欧美综合区丁香五月1区,日韩欧美亚洲系列

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

xpath元素定位常用的幾種方法

freeflydom
2024年11月1日 9:32 本文熱度 1908

元素定位有8種方式,但是在工作中一般都用css、xpath定位。
id定位需要開發(fā)配合,而且項(xiàng)目迭代很快,大多都是用的框架,不會(huì)單獨(dú)去定義id。
css定位語(yǔ)法比較簡(jiǎn)潔,運(yùn)行速度稍快,但總體來(lái)講,因?yàn)閤path的功能更多,更強(qiáng)大,而且xpath可以根據(jù)文字來(lái)定位,所以我們選擇xpath。
雖然xpath定位速度慢,但是自動(dòng)化測(cè)試很多時(shí)候都是在無(wú)人值守時(shí)間跑的,可以忽略時(shí)間的問(wèn)題。

xpath是使用路徑表達(dá)式來(lái)選取XML文檔中的節(jié)點(diǎn)或節(jié)點(diǎn)集。下面重點(diǎn)學(xué)習(xí)下xpath的基礎(chǔ)語(yǔ)法和xpath的一些函數(shù)

xpath基礎(chǔ)語(yǔ)法#

  1. /:從根節(jié)點(diǎn)選取或取子節(jié)點(diǎn)根節(jié)點(diǎn)就是/,比如復(fù)制百度的用戶名輸入框的xpath完整路徑
    /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
    這個(gè)路徑就是依次往下的路徑,/html是根節(jié)點(diǎn)下第一個(gè)標(biāo)簽,隨后去找到html標(biāo)簽下的body,依次找,最后找到input標(biāo)簽。

  2. //: 模糊查找標(biāo)簽,也就是不考慮他們的位置,只要找到復(fù)合標(biāo)簽名稱的標(biāo)簽就行比如//input就會(huì)找到當(dāng)前頁(yè)面上所有的input元素

一般定位元素,都是使用模糊查找,因?yàn)檫@樣更加靈活。如果前端改了元素,使用xpath絕對(duì)路徑定位的元素大概率會(huì)受到影響,而用模糊查找的xpath路徑可能是不需要修改元素定位表達(dá)式的。

  1. .:選取當(dāng)前節(jié)點(diǎn)

  2. ..:選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)

  3. //div[@class='s-p-top']: 選取所有標(biāo)簽名為div,屬性class值為s-p-top的元素

  4. //span[text()='設(shè)置']:選取所有標(biāo)簽名為span,span標(biāo)簽的文字內(nèi)容為’設(shè)置’的元素

  1. //div[@class='s-top-left-new s-isindex-wrap']/a[1]:選取第一個(gè)a

  2. //div[@class='s-top-left-new s-isindex-wrap']/a[last()]:選取最后一個(gè)a
    //div[@class='s-top-left-new s-isindex-wrap']/a[last()-1]:選取倒數(shù)第二個(gè)a

xpath之contains、starts-with#

  1. contains:有兩種使用場(chǎng)景
    1)屬性
    當(dāng)class中含有值,如‘s_ipt’,就滿足條件
    //span[contains(@class,'s_ipt')]

2)文字
當(dāng)文字中含有值,如‘圖片’,就滿足條件
//span[contains(text(),'圖片')]

  1. starts-with:匹配一個(gè)屬性開始位置的關(guān)鍵字
    //span[starts-with(text(),'按')]

xpath軸之following-sibling#

定位同級(jí)元素的下一個(gè)元素
//div[@class='side-entry aging-entry']/following-sibling::div

以百度頁(yè)面為例,需要定位二維碼,可以先定位到輔助模式,輔助模式是一個(gè)div元素,跟它同級(jí)的div在它的下方,所以用following-sibling

xpath軸之preceding-sibling#

定位同級(jí)元素的上一個(gè)元素
//div[contains(@class,'qrcode-nologin')]/preceding-sibling::div

以百度頁(yè)面為例,需要定位輔助模式,可以先定位到二維碼,二維碼是一個(gè)div元素,跟它同級(jí)的div在它的上方,所以用preceding-sibling::div

xpath軸之a(chǎn)ncestor#

//div[contains(@class,'qrcode-nologin')]/ancestor::div[@id='s_side_wrapper']/div

以百度頁(yè)面為例,需要定位輔助模式,可以先定位到二維碼,隨后向上找到s_side_wrapper這個(gè)div標(biāo)簽,再往下定位找到輔助模式

 

xpath定位基礎(chǔ)總結(jié)#

  • //ul/*:ul的所有子元素

  • //input[2]:第2個(gè)input元素

  • //input[last()]:最后一個(gè)input元素

  • //div[@class='']: 有class屬性的div元素

  • //span[text()='XX']: 文本是XX的span元素

  • //div[contains(@class,'')]:包含class屬性的div元素

xpath軸定位表達(dá)式大全#

使用語(yǔ)法:軸名稱::節(jié)點(diǎn)名稱前后的定位與之前一致,用/隔開即可

  • ancestor:祖先節(jié)點(diǎn),包括父節(jié)點(diǎn)

  • parent:父節(jié)點(diǎn)

  • child:子節(jié)點(diǎn)

  • descendant:所有后代(兒子、孫子、曾孫子...)

  • preceding:當(dāng)前元素節(jié)點(diǎn)標(biāo)簽之前的所有節(jié)點(diǎn)(HTML頁(yè)面之前的)

  • preceding-sibling:當(dāng)前元素節(jié)點(diǎn)標(biāo)簽之前的所有兄弟節(jié)點(diǎn)(同級(jí))

  • following:當(dāng)前元素節(jié)點(diǎn)標(biāo)簽之后的所有節(jié)點(diǎn)

  • following-sibling:當(dāng)前元素節(jié)點(diǎn)標(biāo)簽之后的所有兄弟節(jié)點(diǎn)(同級(jí))


作者:是小魚呀 出處:https://www.cnblogs.com/sophia12138/p/17248267.html



該文章在 2024/11/1 9:32:44 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved