開始寫自動化腳本之前免都,我們先學(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á)式捺典。
打開火狐瀏覽器,如果沒有安裝从祝,下載默認(rèn)安裝
點擊右上角襟己,菜單-附件組件-擴展
在搜索所有附件組件文本輸入框輸入:firebug
找到Firebug引谜,點擊 安裝。重復(fù)步驟3和4擎浴,搜索和安裝FirePath员咽。
安裝好了之后,會在火狐瀏覽器右上角顯示一個蟲子的圖標(biāo)贮预。
二.XPath工具簡單使用
我們用定位百度首頁的搜索輸入框這個元素定位來演示贝室。
打開百度首頁
鼠標(biāo)定位到搜索輸入框
右鍵鼠標(biāo),選Inspect in FirePath
-
打開界面如下圖
三.XPath定位技巧之text()方法
以百度首頁右上角“新聞”定位舉例
XPath如下圖
四.XPath定位技巧之contains()方法
有時候萌狂,我們不喜歡寫很長的XPath表達(dá)式档玻,而且節(jié)點信息里面,有些信息是動態(tài)的茫藏,每次都獲取都不一樣误趴,這個時候contains()方法就很好用。
JD首頁左側(cè)電腦菜單舉例
XPath寫法推薦务傲,這里用contains()方法來定位
五. 相對XPath路徑寫法
有時候凉当,我們遇到目標(biāo)元素節(jié)點的信息很少,不足夠用來精確定位到目標(biāo)元素售葡,這個時候看杭,我們就需要考慮,利用目標(biāo)元素上下附件節(jié)點挟伙,通過確定附件的節(jié)點從而確定目標(biāo)元素楼雹,這種方式就叫相對路徑。
這里用百度新聞首頁的一個單選按鈕來舉例尖阔;
火狐瀏覽器上firepath給出的推薦表達(dá)式是:
這里推薦的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