最近開始學習用python使用selenium寫前端自動化用例,過程中遇到乙個問題。
使用斷言設定檢查點,斷言失敗了,但是用例結果為pass。原來的**結構如下:
def test_create_role(self):
self.driver.get(url)
try:
# 建立角色
self.driver.find_element_by_xpath('//input[@name="rolename"]').send_keys(self.role_name)
self.driver.find_element_by_xpath('//textarea[@name="description"]').send_keys("selenium auto create.")
self.wait.until(
ec.visibility_of_element_located(
(by.xpath, '//button[text()="建立角色"]'))
).click()
is_element_exist = is_element_exist(self.driver, by.xpath,
'//span[contains(text(), "已建立")]').is_element_exist_wait()
logger.info("create role status is %s" % is_element_exist)
self.asserttrue(is_element_exist == true, "create role failed")
except exception as e:
logger.error(e)
其中呼叫了乙個自定義類的函式:is_element_exist_wait,而後用asserttrue設定檢查點。測試時修改了元素定位的字串,使檢查結果失敗。檢視到assert與預期相符。但是使用htmltestrunner檢視到結果為pass.
原來是因為我把斷言語句放到了try語句下面,導致被except中定義的異常類捕獲,最後執行完就沒有異常了。
修改後的**就沒有問題了:
def test_create_role(self):
self.driver.get(url)
self.driver.find_element_by_xpath('//input[@name="rolename"]').send_keys(self.role_name)
self.driver.find_element_by_xpath('//textarea[@name="description"]').send_keys("selenium auto create.")
self.wait.until(
ec.visibility_of_element_located(
(by.xpath, '//button[text()="建立角色"]'))
).click()
is_element_exist = is_element_exist(self.driver, by.xpath,
'//span[contains(text(), "已建立")]').is_element_exist_wait()
logger.info("create role status is %s" % is_element_exist)
self.asserttrue(is_element_exist == true, "create role failed")
看來不能把斷言放到try語句中並且是可以被except的異常類包含的,否則就不能通過斷言來設定測試用例的結果。 selenium斷言的分類
操作 action 輔助 accessors 和斷言 assertion 操作action 模擬使用者與 web 應用程式的互動。輔助accessors 這是輔助工具。用於檢查應用程式的狀態並將結果儲存到變數中。斷言assertion 斷言被用於三種模式 assert verify waitfor ...
unittest中斷言的使用
斷言使用 unittest中提供斷言assert各種方法 所以使用前需要匯入import unittest 常用的有 assertequal first,second,msg assertless first.second,msg first注意 當斷言為真時,會執行斷言之後的 如 在斷言之後列印成...
關於在ios 中斷言的使用
好久沒有寫部落格了,這段時間一直在忙公司的專案 簡單說一下ios中斷言的使用 斷言 在開發中經常在使用到,先看ios中斷言的使用例項 nsassert nsstring str abcd nsassert str isequaltostring abcde str abcde 在斷言中前面那部分輸入...