zoukankan      html  css  js  c++  java
  • selenium-三种等待方式

    一、强制等待

    强制等待就是前一步执行完成后必须等待5秒才能执行下一步,不灵活,影响代码执行的整体速度。

    from selenium import webdriver
    import time
    
    driver=webdriver.Chrome()
    driver.get('https://www.baidu.com')
    
    time.sleep(5)   #强制等待5秒
    
    driver.find_element_by_id('kw').send_keys('软件测试')
    driver.find_element_by_id('su').click()
    

      

     

    二、隐性等待

    隐性等待是在规定时间内等待浏览器加载完成,对整个driver起作用,所以只需要设置一次即可。当页面有弹出框时,隐性等待对弹出框的等待不起作用,它只针对页面刷新起作用。若最长等待时间完后为加载成功,直接抛出异常。

    from selenium import webdriver
    
    driver=webdriver.Chrome()
    driver.get('https://www.baidu.com')
    
    driver.implicitly_wait(5)   #最长等待5秒
    
    driver.find_element_by_id('kw').send_keys('软件测试')
    driver.find_element_by_id('su').click()

    三、显性等待

    显性等待是在规定等待时间内,每隔多少秒判断一次,看是否达到条件。若达到条件,则执行下一步,否则继续等待,直到超过设置的最长时间,抛出TimeoutException。

    #!usr/bin/env python
    #-*- coding:utf-8 -*-
    
    from selenium import webdriver
    from selenium.webdriver.support import expected_conditions
    from selenium.webdriver.support.wait import WebDriverWait
    
    driver=webdriver.Chrome()
    driver.get('https://www.baidu.com')
    
    WebDriverWait(driver,10,0.5).until(expected_conditions.alert_is_present())   #在10秒内没0.5秒判断一次弹出框是否出现,出现后执行下一步
    
    

      参考:https://blog.csdn.net/huilan_same/article/details/52544521

  • 相关阅读:
    cocos2d-x把json数据解析到数组或字典中(libjson库)
    (bug更正)利用KVC和associative特性在NSObject中存储键值
    第二次博客作业
    我的感想
    期末总结
    陈老师作业
    第三次作业---四则运算的进一步完善
    好难
    对git的认识
    计应143 卞玉新
  • 原文地址:https://www.cnblogs.com/duyaya/p/10970559.html
Copyright © 2011-2022 走看看