zoukankan      html  css  js  c++  java
  • 【自动化测试不求人】selenium三种等待时间

      在实际的项目中,代码在执行定位页面元素的过程中有些是需要等待时间的,但是如果在所有定位元素的操作之前都加上等待时间的话就比较麻烦,并且不易维护。

      此时可以考虑智能等待,方法很简单, 可以在代码前面加上全局的智能等待时间,比如“driver.implicitly_wait(10)”,这里需要解释一下智能等待何为智能,比如在代码中,设定时间为10秒,那么如果元素定位花了2秒中,那么这个页面的等待时间就是2秒,而不是设置的10秒。如果10秒内还没有定位到元素,就会报错,元素定位失败。示例代码如下所示。

    • 智能等待implicitly_wait也叫隐式等待
    #学习有疑问请联系作者
    #作者qq:2574674466
    #作者邮箱2574674466@qq.com
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get('http://trains.ctrip.com/TrainBooking/SearchTrain.aspx')
    driver.implicitly_wait(10)
    • 强制等待,time.sleep如等待3秒:
    #学习有疑问请联系作者
    #作者qq:2574674466
    #作者邮箱2574674466@qq.com
    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get('http://trains.ctrip.com/TrainBooking/SearchTrain.aspx')
    time.sleep(3)
    • 显式等待,使用方法:WebDriverWait(driver, 超时时间, 调用频率, 要忽略的异常).until(要执行的方法, 超时时返回的错误信息)
    #学习有疑问请联系作者
    #作者qq:2574674466
    #作者邮箱2574674466@qq.com
    from selenium import webdriver
    import  time
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as ex
    driver = webdriver.Chrome()
    driver.get("https://passport.meituan.com/account/unitivelogin?")
    print(driver.title)
    driver.maximize_window()
    s= WebDriverWait(driver,5).until(ex.title_is("登录 | 美团网"))

    视频、学习笔记联系qq:2574674466
    更多内容请关注公众号:“大牛测试

     

    欢迎加入交流群:Selenium学习群: 628908894
  • 相关阅读:
    事后诸葛亮
    团队作业6--展示博客(Alpha版本)
    团队作业5——测试与发布(Alpha版本)
    团队作业2:需求分析&原型设计
    团队编程作业1-团队展示与选题
    结对编程1
    TeamViewer app案例分析
    第一次作业--四则运算
    【Alpha】Daily Scrum Meeting 集合贴
    【Alpha】Daily Scrum Meeting——Day3
  • 原文地址:https://www.cnblogs.com/tim2016/p/15386305.html
Copyright © 2011-2022 走看看