elenium提供了三種模式的斷言:assert 、verify、waitfor
1)Assert(斷言) 失敗時,該測試將終止。
2)Verify(驗證) 失敗時,該測試將繼續執行,並將錯誤記入日志顯示屏
3)Waitfor(等待) 用於等待某些條件變為真
如果該條件為真,他們將立即成功執行。如果該條件不為真,則將失敗並暫停測試。直到超過當前所設定的超過時間。一般跟setTimeout時間一起使用
常用斷言
- assertLocation(判斷當前是在正確的頁面)
- assertTitle(檢查當前頁面的 title 是否正確)
- assertValue(檢查 input 的值, checkbox 或 radio,有值為”on”無為”off”)
- assertSelected(檢查 select 的下拉菜單中選中是否正確)
- assertSelectedOptions(檢查下拉菜單中的選項的是否正確)
- assertText(檢查指定元素的文本)
- assertTextPresent(檢查在當前給用戶顯示的頁面上是否有出現指定的文本)
- assertTextNotPresent(檢查在當前給用戶顯示的頁面上是否沒有出現指定的文本)
- assertAttribute(檢查當前指定元素的屬性的值)
- assertTable(檢查 table 里的某個 cell 中的值)
- assertEditable(檢查指定的 input 是否可以編輯)
- assertNotEditable(檢查指定的 input 是否不可以編輯)
- assertAlert(檢查是否有產生帶指定 message 的 alert 對話框)
- verifyTitle (檢查預期的頁面標題)
- verifyTextPresent (驗證預期的文本是否在頁面上的某個位置)
- verifyElementPresent(驗證預期的UI元素,它的HTML標簽的定義,是否在當前網頁上)
- verifyText(核實預期的文本和相應的HTML標簽是否都存在於頁面上)
- verifyTable(驗證表的預期內容)
- waitForPageToLoad(暫停執行,直到預期的新的頁面加載)
- waitForElementPresent (等待檢驗某元素的存在。為真時,則執行)
異常類型
- AssertionError:assert語句失敗
- AttributeError:試圖訪問一個對象沒有的屬性
- IOError:輸入輸出異常,基本是無法打開文件
- ImportError:無法引入模塊或者包,基本是路徑問題
- IndentationError:語法錯誤,代碼沒有正確的對齊
- IndexError:下標索引超出序列邊界
- KeyError:試圖訪問字典里不存在的鍵
- KeyboadrInterrupt:Ctrl+c被按下
- NameError:使用一個還未賦值對象的變量
- SyntaxError:python代碼邏輯語法錯誤,不能執行
- TypeError:傳入的對象類型與要求不符
- UnboundLocalError:試圖訪問一個還未設置的全局變量,基本上是由於另有一個同名的全局變量,導致你以為在訪問
- ValueError:傳入一個不被期望的值,即使類型正確
UnitTest框架中的斷言
(在unittest單元測試框架中,TestCase類提供了一些方法來檢查並報告故障)
TestNG框架中的常用的斷言
- assertTrue:判斷是否為True。
- assertFalse:判斷是否為false。
- assertSame:判斷引用地址是否相同。
- assertNotSame:判斷引用地址是否不相同。
- assertNull:判斷是否為null。
- assertNotNull:判斷是否不為null。
- assertEquals:判斷是否相等,Object類型的對象需要實現haseCode及equals方法。
- assertNotEquals:判斷是否不相等。
- assertEqualsNoOrder:判斷忽略順序是否相等。