UI自動化之異常與截圖處理


對操作不成功時,希望能夠繼續執行其他操作,或者是,希望操作不成功時,能夠寫日志記錄

 

目錄

1、常見異常

2、截圖處理

 

 

1、常見異常

 

1.NoSuchElementException:沒有找到元素

2.NoSuchFrameException:沒有找到iframe

3.NoSuchWindowException:沒找到窗口句柄handle

4.NoSuchAttributeException:屬性錯誤

5.NoAlertPresentException:沒找到alert彈出框

6.ElementNotVisibleException:元素不可見

7.ElementNotSelectableException:元素沒有被選中

8.TimeoutException:查找元素超時

 

2、截圖處理

第一步:定義一個截圖裝飾器

# coding:utf-8
from selenium import webdriver
class Screen(object):
    u'''返個應該截圖功能的裝飾器'''
    def __init__(self, driver):
        self.driver = driver

    def __call__(self, f):
        def inner(*args):
            try:
                return f(*args)
            except:
                import time
                nowTime =time.strftime("%Y_%m_%d_%H_%M_%S")
                self.driver.get_screenshot_as_file('%s.jpg' %nowTime)
                raise
        return inner

 第二步:調用截圖功能的裝飾器

import unittest
class Test(unittest.TestCase):
    driver = webdriver.Firefox() # 全局參數 driver
    def setUp(self):
        self.driver.get("https://www.baidu.com")
    @Screen(driver)
    def test01(self):
        u'''返個是失敗的案例'''
        self.driver.find_element_by_id("11kw").send_keys("python")
        self.driver.find_element_by_id("su").click()
    @Screen(driver)
    def test_02(self):
        u'''返個是通過的案例'''
        self.driver.find_element_by_id("kw").send_keys("yoyo")
        self.driver.find_element_by_id("su").click()
    def tearDown(self):
        self.driver.quit()
if __name__ == "__main__":
    unittest.main()

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM