Python+Selenium基礎(chǔ)篇之4-XPath的使用

開始寫自動化腳本之前免都,我們先學(xué)習(xí)幾個概念魁兼,在完全掌握了這幾個概念之后,有助于我們快速上手顾瞻,如何去編寫自動化測試腳本憔购。

元素宫峦,在這個教程系列,我們說的元素之網(wǎng)頁元素(web element)玫鸟。在網(wǎng)頁上面的文本輸入框导绷,按鈕,多選屎飘,單選妥曲,標(biāo)簽贾费,和文字都叫元素,總之檐盟,凡是能在頁面顯示的對象都可以作為頁面元素對象褂萧。

元素定位,有時候也叫Locator葵萎,一個HTML頁面元素导犹,可以用很多方法去描述這個元素的位置。打個比方羡忘,生活中地址谎痢,一個大廈,正常的地址是 xx省xx市xx區(qū)xx街道xxx號卷雕,這個具體描述就是這個大廈的Locator节猿。同樣的道理,一個網(wǎng)頁元素漫雕,也有位置滨嘱,也可以通過一些手段或者表達(dá)式去描述這個元素在頁面對應(yīng)的位置。

XPath浸间,XPath即為XML路徑語言太雨,它是一種用來確定XML標(biāo)準(zhǔn)通用標(biāo)記語言的子集)文檔中某部分位置的語言。XPath基于XML的樹狀結(jié)構(gòu)发框,提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點的能力躺彬,XPath 很快的被開發(fā)者采用來當(dāng)作小型查詢語言煤墙。

Selenium一共有八種元素定位方法梅惯,其中,在實際開發(fā)自動化腳本過程中仿野,XPath的使用是最多的一種方法铣减,所以本文就介紹如何通過XPath來元素定位。學(xué)習(xí)了XPath元素定位后脚作,其他7中方法葫哗,很容易理解,甚至已經(jīng)學(xué)會了其中好幾種方法球涛。

一.XPath工具安裝

為了提高抓取元素XPath的劣针,我推薦在Firefox上安裝一個firepath的插件,這個插件亿扁,可以幫我們快速獲取網(wǎng)頁元素的XPath表達(dá)式捺典。

  1. 打開火狐瀏覽器,如果沒有安裝从祝,下載默認(rèn)安裝

  2. 點擊右上角襟己,菜單-附件組件-擴展

  3. 在搜索所有附件組件文本輸入框輸入:firebug

  4. 找到Firebug引谜,點擊 安裝。重復(fù)步驟3和4擎浴,搜索和安裝FirePath员咽。

  5. 安裝好了之后,會在火狐瀏覽器右上角顯示一個蟲子的圖標(biāo)贮预。

二.XPath工具簡單使用

我們用定位百度首頁的搜索輸入框這個元素定位來演示贝室。

  1. 打開百度首頁

  2. 鼠標(biāo)定位到搜索輸入框

  3. 右鍵鼠標(biāo),選Inspect in FirePath

  4. 打開界面如下圖


    圖片.png

三.XPath定位技巧之text()方法

以百度首頁右上角“新聞”定位舉例

XPath如下圖

圖片.png

四.XPath定位技巧之contains()方法
有時候萌狂,我們不喜歡寫很長的XPath表達(dá)式档玻,而且節(jié)點信息里面,有些信息是動態(tài)的茫藏,每次都獲取都不一樣误趴,這個時候contains()方法就很好用。

JD首頁左側(cè)電腦菜單舉例

圖片.png

XPath寫法推薦务傲,這里用contains()方法來定位


圖片.png

五. 相對XPath路徑寫法

有時候凉当,我們遇到目標(biāo)元素節(jié)點的信息很少,不足夠用來精確定位到目標(biāo)元素售葡,這個時候看杭,我們就需要考慮,利用目標(biāo)元素上下附件節(jié)點挟伙,通過確定附件的節(jié)點從而確定目標(biāo)元素楼雹,這種方式就叫相對路徑。

這里用百度新聞首頁的一個單選按鈕來舉例尖阔;


圖片.png

火狐瀏覽器上firepath給出的推薦表達(dá)式是:

圖片.png

這里推薦的XPath是根據(jù)目標(biāo)元素節(jié)點中id信息來定位的贮缅,這個通過id就能定位,當(dāng)然好介却。有時候谴供,如果這個id不能作為參考值,我們需要利用相對定位方法來定位這個新聞標(biāo)題前面的單選按鈕齿坷;

1)先根據(jù)for = newstitle 或者text()=新聞標(biāo)題來定位“新聞標(biāo)題”這個標(biāo)簽桂肌。

2)根據(jù)相對定位來確定“新聞標(biāo)題”前面的這個radio按鈕。

3)XPath的寫法是:.//*/label[@for='newstitle']/../input[@id='newstitle']

由于,當(dāng)前這個舉例不是很符合只能采用相對定位才能確定元素的場景永淌,感覺這個表達(dá)式定位崎场,在這里反而更復(fù)雜化,但是遂蛀,相對定位元素方法是一樣的谭跨,和上面舉例的步驟、思維方式是一致的。如果發(fā)生了饺蚊,無法通過目標(biāo)元素節(jié)點信息來定位萍诱,那么,就要考慮是否采用相對路徑來解決這個問題污呼。元素定位裕坊,理論上是沒有定位不到的元素,通過以上方法燕酷,基本上能定位項目中大部分元素籍凝。XPath元素定位就先介紹到這里,以后如果有其他新的好的方法苗缩,會添加到這篇文章饵蒂,接下來,我們開始寫一個真正意義上的第一個webui自動化腳本酱讶,請看下一篇退盯。

目前已經(jīng)找不到firebug

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泻肯,隨后出現(xiàn)的幾起案子渊迁,更是在濱河造成了極大的恐慌,老刑警劉巖灶挟,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件琉朽,死亡現(xiàn)場離奇詭異,居然都是意外死亡稚铣,警方通過查閱死者的電腦和手機箱叁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惕医,“玉大人耕漱,你說我怎么就攤上這事〔芟牵” “怎么了孤个?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵剃允,是天一觀的道長沛简。 經(jīng)常有香客問我,道長斥废,這世上最難降的妖魔是什么椒楣? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮牡肉,結(jié)果婚禮上捧灰,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好毛俏,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布炭庙。 她就那樣靜靜地躺著,像睡著了一般煌寇。 火紅的嫁衣襯著肌膚如雪焕蹄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天阀溶,我揣著相機與錄音腻脏,去河邊找鬼。 笑死银锻,一個胖子當(dāng)著我的面吹牛永品,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播击纬,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼鼎姐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了更振?” 一聲冷哼從身側(cè)響起症见,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎殃饿,沒想到半個月后谋作,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡乎芳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年遵蚜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奈惑。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡吭净,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肴甸,到底是詐尸還是另有隱情寂殉,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布原在,位于F島的核電站友扰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏庶柿。R本人自食惡果不足惜村怪,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浮庐。 院中可真熱鬧甚负,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至病涨,卻和暖如春懂昂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背没宾。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工凌彬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人循衰。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓铲敛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親会钝。 傳聞我的和親對象是個殘疾皇子伐蒋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容