UI自动化之异常与截图处理

Posted weizhideweilai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UI自动化之异常与截图处理相关的知识,希望对你有一定的参考价值。

对操作不成功时,希望能够继续执行其他操作,或者是,希望操作不成功时,能够写日志记录

 

目录

1、常见异常

2、截图处理

 

 

1、常见异常

 

1.NoSuchElementException:没有找到元素

2.NoSuchFrameException:没有找到iframe

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

4.NoSuchAttributeException:属性错误

5.NoAlertPresentException:没找到alert弹出框

6.lementNotVisibleException:元素不可见

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()

  

以上是关于UI自动化之异常与截图处理的主要内容,如果未能解决你的问题,请参考以下文章

UI自动化中Selenium WebDriver如何截图?这里有答案!

Python自动化测试之异常处理机制实例详解

Python全栈自动化系列之Python编程基础(异常捕获)

python + selenium webdriver 自动化测试 之 环境异常处理 (持续更新)

给定路径中的 UI 自动化商店屏幕截图

Python之错误与异常处理