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秒)还没有定位到元素,则抛出异常。

  • 相关阅读:
    [Linux] crontab和shell每天定时备份数据库
    [Go] 实战项目在线客服GO-FLY -在gin框架使用IP识别库转换IP为城市
    [javascript] elementui和vue下复制粘贴上传图片
    [Go] GO-FLY客服项目被公众号 "转角遇到GitHub " 推荐
    [javascript] cdn模式下vue和vue-router实现路由
    [Go] Golang发送http GET请求
    [MySQL] 利用explain查看sql语句中使用的哪个索引
    [Go]GO语言实战-小程序或公众号接口gin框架验证微信服务器消息签名-开源WEB客服
    [Go]GO语言实战-开源WEB客服GO-FLY-gorm下分页的实现
    [前端] 设定为disabled的表单域值不能被提交
  • 原文地址:https://www.cnblogs.com/cyq0528/p/9916741.html
Copyright © 2011-2022 走看看