菜鳥(niǎo)學(xué)自動(dòng)化測(cè)試(四)----selenium 命令之驗(yàn)證頁(yè)面元素
根據(jù)上一節(jié)計(jì)劃,這里我們來(lái)學(xué)習(xí)一下如何驗(yàn)證頁(yè)面元素。
----//驗(yàn)證頁(yè)面元素
驗(yàn)證頁(yè)面上的UI元素,是你在自動(dòng)化測(cè)試案例過(guò)程中常用到的特性。Selenese通過(guò)各種方式驗(yàn)證UI元素。
舉例,你是否正在測(cè)試一下情況:
(1)一個(gè)UI元素存在于頁(yè)面上某個(gè)位置;
(2)特定文本存在于頁(yè)面上某個(gè)位置;
(3)特定文本存在于頁(yè)面上指定位置;
如果你要測(cè)試文本標(biāo)題,那么文本內(nèi)容和它所在的頁(yè)面頂部位置,測(cè)試案例都需要關(guān)心。如果你要測(cè)試主頁(yè)上的某個(gè)圖片,但是開(kāi)發(fā)人員經(jīng)常改變圖片所在的位置,那么你只要測(cè)試特定圖片是否存在于頁(yè)面上某個(gè)位置行了。
1.assertion或者verification?
斷言(assertion)或者驗(yàn)證(verification)關(guān)系到如何管理“失敗”。斷言會(huì)使當(dāng)前案例運(yùn)行失敗,并終止案例執(zhí)行;驗(yàn)證也會(huì)使案例運(yùn)行失敗,但允許案例繼續(xù)執(zhí)行。
代碼說(shuō)明:
我們打開(kāi)selenium的下載頁(yè)面。驗(yàn)證代碼頁(yè)面中出現(xiàn)的“Downloads”文本標(biāo)記。
第二行(assertTitle)和第三行(verifyText)都是驗(yàn)證頁(yè)面時(shí)候有“Downloads”,但如果第二行出現(xiàn)錯(cuò)誤,則程序終止運(yùn)行。第三行出現(xiàn)錯(cuò)誤,給出錯(cuò)誤提示,但不影響第四行程序的運(yùn)行。
2.verifyTextPresent命令
代碼說(shuō)明:
打開(kāi)淘寶網(wǎng)首頁(yè),搜索框輸入“手機(jī)”關(guān)鍵字,點(diǎn)擊搜索按鈕。我們?cè)谒阉骱蟮捻?yè)面中檢查時(shí)候有“手機(jī)”文字。
verifyTextPresent命令用來(lái)驗(yàn)證特定的文本是否存在頁(yè)面的某處。
Selenium在當(dāng)前測(cè)試頁(yè)面上搜尋和驗(yàn)證“手機(jī)”是否存在于某處。當(dāng)你只關(guān)心頁(yè)面上是否存在特定文本時(shí)使用。
3.verifyElementPresent命令
當(dāng)測(cè)試特定UI元素是否存在、且不關(guān)心其內(nèi)容時(shí),使用verifyElementPresent命令,這一命令不檢查文本,僅檢查HTML tag。
代碼說(shuō)明:
打開(kāi)百度首頁(yè),驗(yàn)證百度是否存在圖片。//div/p/img 驗(yàn)證被<img>標(biāo)識(shí)的圖片在頁(yè)面上是否存在。
為什么是//div/p/img?我們點(diǎn)擊百度首頁(yè)上面的圖片查看元素。
查看圖片代碼:
看到圖片所在位置的層次了吧!丫的,我整了白天才明白是這樣子的。
還可以用verifyElementPresent命令檢查鏈接、圖片、分區(qū)等。
4.verifyText命令
當(dāng)文本和它的UI元素都要被測(cè)試時(shí),使用verifyText命令,verifyText必須使用定位器,如果你選擇XPath或者DOM定位器,可以檢查特定文本是否出現(xiàn)在頁(yè)面上的特定位置(相對(duì)于其他元素而言)