zoukankan      html  css  js  c++  java
  • Selenium断言的使用,等待

    自动化测试常用断言的使用方法(python)

    自动化测试中寻找元素并进行操作,如果在元素好找的情况下,相信大家都可以较熟练地编写用例脚本了,但光进行操作可能还不够,有时候也需要对预期结果进行判断。

    这里介绍几个常用断言的使用方法,可以一定程度上帮助大家对预期结果进行判断。

    这里介绍以下几个断言方法:

    assertEqual(a,b,[msg=‘测试失败时打印的信息’]): 断言a和b是否相等,相等则测试用例通过。

    assertNotEqual(a,b,[msg=‘测试失败时打印的信息’]): 断言a和b是否相等,不相等则测试用例通过。
    assertTrue(x,[msg=‘测试失败时打印的信息’]): 断言x是否True,是True则测试用例通过。
    assertFalse(x,[msg=‘测试失败时打印的信息’]): 断言x是否False,是False则测试用例通过。
    assertIsNone(x,[msg=‘测试失败时打印的信息’]): 断言x是否None,是None则测试用例通过。
    assertIsNotNone(x,[msg=‘测试失败时打印的信息’]): 断言x是否None,不是None则测试用例通过。

     

    Selenium有3种类型的等待:强制等待,显式等待和隐式等待。

    time.sleep(seconds)

    seconds:等待的时间

    显式等待

    WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。

    具体格式如下:

    WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
    driver :浏览器驱动。
    timeout :最长超时时间,默认以秒为单位。
    poll_frequency :检测的间隔(步长)时间,默认为0.5S。

    WebDriverWait()一般由until()或until_not()方法配合使用,下面是until()和until_not()方法的说明。

    * until(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为True。

    * until_not(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为False。

    隐式等待

    WebDriver提供了implicitly_wait()方法来实现隐式等待,默认设置为0。它的用法相对来说要简单得多。

    from selenium import webdriver

    driver = webdriver.Firefox()

    # 设置隐式等待为10秒

    driver.implicitly_wait(10)

    driver.get("http://www.baidu.com")

    driver.find_element_by_id("kw22").send_keys('selenium')

     

    implicitly_wait()默认参数的单位为秒,本例中设置等待时长为10秒。

    首先这10秒并非一个固定的等待时间,它并不影响脚本的执行速度。

    其次,它并不针对页面上的某一元素进行等待。当脚本执行到某个元素定位时,如果元素可以定位,则继续执行;

    如果元素定位不到,则它将以轮询的方式不断地判断元素是否被定位到。

    假设在第6秒定位到了元素则继续执行,若直到超出设置时长(10秒)还没有定位到元素,则抛出异常。

  • 相关阅读:
    【flutter学习】基础知识(一)
    【软件测试学习】 敏捷开发(二)
    【软件测试学习】 软件测试初步认识(一)
    【hugo】- hugo 监听浏览器切换title
    【hugo】- hugo 博客 添加鼠标单击特效
    春风十里
    一眼就能看懂的C#委托、多播委托和事件的区别与联系。
    js控制的DataGrid的URL参数不能动态刷新表格的问题
    [报错解决].net web api测试页面ajax 报错400 的问题
    [MVC]使用jquery.form.js 异步上传文件
  • 原文地址:https://www.cnblogs.com/cyq0528/p/9916741.html
Copyright © 2011-2022 走看看