zoukankan      html  css  js  c++  java
  • Selenium入门20 等待时间

    自动化过程中有的页面元素加载慢或者需要等待特定条件执行后续步骤,此时需添加等待时间:

    1 time.sleep()  固定等待时间,需import time

    2 webdriver隐式等待 无需引入包

    driver.implicitly_wait(10) 最多等待10s,10s内监测到元素则继续执行,超过10s抛出超时异常。driver生命周期内都有效

    3 webdriver显示等待,需引包from selenium.webdriver.support.ui import WebDriverWait

    WebDriverWait(driver, 10).until()或until_not() 10s内每500ms监测一次条件是否成立,超过10s超时

    下面尝试未设置时间,设置固定时间,设置隐式等待和显示等待四种方式:

    1 未设置等待时间,抛出异常未找到元素

    #coding:utf-8
    #等待时间
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import
    dr = webdriver.Firefox()
    dr.get("https://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
    #未等待
    dr.find_element_by_partial_link_text("Web Browser Automation").click()
    dr.quit()

    2 设置固定等待时间2s

    #coding:utf-8
    #等待时间
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import time
    dr = webdriver.Firefox()
    dr.get("https://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
    #固定等待时间
    time.sleep(2)
    dr.find_element_by_partial_link_text("Web Browser Automation").click()
    dr.quit()

    3 隐式等待

    #coding:utf-8
    #等待时间
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    dr = webdriver.Firefox()
    dr.implicitly_wait(10) #设置页面元素的隐式等待时间10s
    dr.get("https://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
    dr.find_element_by_partial_link_text("Web Browser Automation").click()
    dr.quit()

    4 显示等待

    #coding:utf-8
    #等待时间
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import  WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    dr = webdriver.Firefox()
    dr.get("https://www.baidu.com")
    dr.find_element_by_id("kw").send_keys("selenium",Keys.ENTER)
    #显示等待
    element = WebDriverWait(dr,10).until(
        EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,'Web Browser Automation'))
    )
    element.click()
    dr.quit()

    webdriver提供了很多预期条件:

     the end!

  • 相关阅读:
    Python find()方法
    Python expandtabs()方法
    RGB-D对红外热像仪和毫米波雷达标定
    ADAS虚拟车道边界生成
    3D惯导Lidar SLAM
    语义分割改进:通过视频传播和标签松弛
    YOLOv4:目标检测(windows和Linux下Darknet 版本)实施
    tensorflow-yolov4实施方法
    3D惯导Lidar仿真
    YOLOv4实用训练实践
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/9786108.html
Copyright © 2011-2022 走看看