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
  • 相关阅读:
    弹窗
    ajax
    Jquery元素选取、常用方法
    PDO
    session的使用
    投票练习题
    php 批量删除
    php 连接数据库的增删改查
    面向对象的加载类和设计模式
    面向对象三大特性
  • 原文地址:https://www.cnblogs.com/tim2016/p/15386305.html
Copyright © 2011-2022 走看看