selenium 三種斷言以及異常型別解析。
斷言assertion:
驗證應用程式的狀態是否同所期望的一致。
常見的斷言包括:驗證頁面內容,如標題是否為x或當前位置是否正確,或是驗證該核取方塊是否被勾選。
selenium 提供了三種模式的斷言:assert 、verify、waitfor
assert 失敗時,該測試將終止。
verify 失敗時,該測試將繼續執行,並將錯誤記入日顯示屏 。也就是說允許此單個 驗證通過。確保應用程式在正確的頁面上
waitfor 用於等待某些條件變為真。可用於 ajax 應用程式的測試。
如果該條件為真,他們將立即成功執行。如果該條件不為真,則將失敗並暫停測試。直到超過當前所設定的超過時間。一般跟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:傳入乙個不被期望的值,即使型別正確
例子如下python2.7+selenium3.11.0:
# coding=utf-8
import time
from selenium import webdriver
driver = webdriver.firefox()
driver.maximize_window()
driver.get('')
try:
assert u"百度一下" in driver.title
print ('assertion test pass')
except exception as e:
print ('assertion test fail', format(e))
print driver.title
截圖如下:
selenium 三種斷言以及異常型別
selenium 提供了三種模式的斷言 assert verify waitfor assert 失敗時,該測試將終止。verify 失敗時,該測試將繼續執行,並將錯誤記入日顯示屏 也就是說允許此單個 驗證通過。確保應用程式在正確的頁面上 waitfor 用於等待某些條件變為真。可用於 ajax 應...
selenium的三種等待
1 強制等待 不管頁面是否載入出來,強制讓進城等待。2 隱式等待 driver.implicitly wait 20 3 顯示等待 滿足一些內建的等待條件,這要這些條件滿足,就等待結束。這些條件比如 特定頁面元素載入出來。建立顯示等待的步驟 導包from selenium.webdriver.sup...
selenium三種等待方式
很多時候,我們進行元素定位時無法按預期成功定位到元素,但是我們的 又確保準確無誤,那是什麼原因呢?其實,原因很簡單,大致分為2種 1,所定位的元素在frame iframe中 2,未設定合理的等待 為什麼未設定合理等待的時候,很有可能無法正確定位元素呢?我們知道,的執行速度很快很快,但瀏覽器的渲染速...