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

  • 相关阅读:
    用命令创建MySQL数据库
    Linux下安装mysql
    MySQL字符集及校对规则的理解
    Mybatis 高级结果映射 ResultMap Association Collection
    查看linux系统版本命令
    hdu 1217 Arbitrage (最小生成树)
    hdu 2544 最短路(两点间最短路径)
    hdu 3371 Connect the Cities(最小生成树)
    hdu 1301 Jungle Roads (最小生成树)
    hdu 1875 畅通工程再续(prim方法求得最小生成树)
  • 原文地址:https://www.cnblogs.com/duyaya/p/10970559.html
Copyright © 2011-2022 走看看