zoukankan      html  css  js  c++  java
  • selenium 三种断言以及异常类型

    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框架中的断言

    在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:20 The number is not 10 Sadly ,num not equals to 10

     文件显示:

    # -*- coding:utf-8 -*-
    
    import unittest
    
    class Assert_test(unittest.TestCase):
    
        def test_case(self):
            try:
                num = input("Enter a number")
                self.assertEqual(num, 10, msg="The number is not 10"),
            except AssertionError, msg:
                print msg
    
    
    if __name__ == "__main__":
        unittest.main()
  • 相关阅读:
    mybatis中#{}和${}的区别 (二)
    JAVA分布式架构的演变及解决方案
    mybatis中的#和$的区别
    https
    vue3的组件v-model初探1
    前端性能优化
    HTTP请求的完全过程
    http缓存详解,http缓存推荐方案
    vscode-setting备份
    Mac电脑在finder中添加- 右键打开vscode
  • 原文地址:https://www.cnblogs.com/xiaobucainiao/p/6186826.html
Copyright © 2011-2022 走看看