美文网首页
元素等待

元素等待

作者: 小娟_bb93 | 来源:发表于2020-03-15 18:37 被阅读0次

    元素等待,显示等待和隐式等待~

    • 显示等待:是针对某一个元素进行相关等待判定;
    • 隐式等待:不针对某一个元素进行等待,全局元素等待。

    相关模块:

    WebDriverWait 用于显示式等待查找元素
    等待页面加载完成,找到某个条件发生后再继续执行后续代码,如果超过设置时间检测不到则抛出异常 。
    WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
    ——driver:WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)
    ——timeout:最长超时时间,默认以秒为单位
    ——poll_frequency:休眠时间的间隔(步长)时间,默认为 0.5 秒
    ——ignored_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException 异常

    expected_conditions 预期条件类(里面包含方法可以调用,用于显示等待)
    NoSuchElementException 用于隐式等待抛出异常
    By 用于元素定位

    显示等待

    案例:检测百度页面搜索按钮是否存在,存在就输入关键词“Selenium” 然后点击搜索

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    from time import sleep
    
    '''
    显示等待:针对某一个元素进行相关等待判定。
    '''
    
    driver = webdriver.Chrome()
    
    driver.get("https://www.baidu.com/")
    
    driver.find_element_by_css_selector('#kw').send_keys('selenium')
    
    sleep(2)
    
    # 显示等待:当页面查找搜索按钮,每隔0.5s查询一次,3s超时仍查找不到抛异常
    element = WebDriverWait(driver, 3, 0.5).until(EC.presence_of_element_located((By.ID, 'su')))
    element.click()
    
    sleep(3)
    
    driver.quit()
    

    隐式等待

    from selenium import webdriver
    from selenium.common.exceptions import NoSuchElementException
    from time import sleep, ctime
    
    
    '''
    隐式等待: 不针对某一个元素进行等待,全局元素等待
    '''
    
    
    driver = webdriver.Chrome()
    
    driver.get("https://www.baidu.com/")
    
    sleep(2)
    
    # 设置隐式等待时间
    driver.implicitly_wait(5)
    
    # 检查元素是否存在,不存在抛出异常
    try:
        print(ctime())
        driver.find_element_by_css_selector("#kw").send_keys("selenium")
        driver.find_element_by_css_selector('#su').click()
    except NoSuchElementException as msg:
        print(msg)
    finally:
        print(ctime())
    
    sleep(2)
    
    driver.quit()
    

    相关文章

      网友评论

          本文标题:元素等待

          本文链接:https://www.haomeiwen.com/subject/admpehtx.html