selenium 三種斷言以及異常型別

2022-07-19 15:36:22 字數 3467 閱讀 2750

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:傳入乙個不被期望的值,即使型別正確

在unittest單元測試框架中,testcase類提供了一些方法來檢查並報告故障

例子:

>>> try

: num = input("

enter a number:")

assert (num == 10),"

the number is not 10

"except

assertionerror,msg:

print

msg

print ("

sadly ,num not equals to 10")

enter a number:10

***********************************=

>>> try

: num = input("

enter a number:")

assert (num == 10),"

the number is not 10

"except

assertionerror,msg:

print

msg

print ("

sadly ,num not equals to 10")

enter a number:20the number

isnot 10sadly ,num

not equals to 10

檔案顯示:

#

-*- coding:utf-8 -*-

import

unittest

class

assert_test(unittest.testcase):

deftest_case(self):

try:

num = input("

enter a number")

self.assertequal(num, 10, msg="

the number is not 10"),

except

assertionerror, msg:

print

msgif

__name__ == "

__main__":

unittest.main()

selenium 三種斷言以及異常型別解析

selenium 三種斷言以及異常型別解析。斷言assertion 驗證應用程式的狀態是否同所期望的一致。常見的斷言包括 驗證頁面內容,如標題是否為x或當前位置是否正確,或是驗證該核取方塊是否被勾選。selenium 提供了三種模式的斷言 assert verify waitfor assert 失...

selenium的三種等待

1 強制等待 不管頁面是否載入出來,強制讓進城等待。2 隱式等待 driver.implicitly wait 20 3 顯示等待 滿足一些內建的等待條件,這要這些條件滿足,就等待結束。這些條件比如 特定頁面元素載入出來。建立顯示等待的步驟 導包from selenium.webdriver.sup...

selenium三種等待方式

很多時候,我們進行元素定位時無法按預期成功定位到元素,但是我們的 又確保準確無誤,那是什麼原因呢?其實,原因很簡單,大致分為2種 1,所定位的元素在frame iframe中 2,未設定合理的等待 為什麼未設定合理等待的時候,很有可能無法正確定位元素呢?我們知道,的執行速度很快很快,但瀏覽器的渲染速...