• 【自动化测试不求人】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
  • 相关阅读:
    第一次代码和思路
    人生道路上的三导师
    introduce myself
    币值转换
    HTTP中GET与POST的区别
    Quartz中时间表达式的设置-----corn表达式
    smartGit30天试用过期
    Zookeeper相关
    maven创建spring项目之后,启动报错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoade
    tomcat识别不出maven web项目
  • 原文地址:https://www.cnblogs.com/tim2016/p/15386305.html
Copyright © 2020-2023  润新知