• 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!

  • 相关阅读:
    [Voice communications] 声音的滤波
    [Voice communications] 声道的转换
    [Voice communications] 音量的控制
    [Voice communications] 看得到的音频流
    [Voice communications] 让音乐响起来
    HDFS之FileStatus
    HDFS中JAVA API的使用
    hadoop集群环境的搭建
    【ARM-Linux开发】【CUDA开发】【深度学习与神经网络】Jetson Tx2安装相关之三
    【ARM-Linux开发】【CUDA开发】【深度学习与神经网络】Jetson Tx2安装相关之三
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/9786108.html
Copyright © 2020-2023  润新知