zoukankan      html  css  js  c++  java
  • selenium


    # 4. 等待操作

    # 强制等待
    from time import sleep
    sleep(10)


    # 隐性等待
    # 设置最长等待时间,在这个时间在只要有个时间点加载完成,则执行下一步代码,比sleep智能,能够自主判断
    # 整个driver的会话周期内,设置一次即可,
    driver.implicitly_wait(10)


    # 显性等待
    # 使用WebDriverWait类 和 excepted_conditions模块
    # 明确某个条件满足之后,再去执行下一步操作
    # 程序每隔XX秒看一眼,如果条件成立了,则执行下一步;否则继续等待,知道超过设置的最长时间,然后抛出TimeoutException。

    # (1)WebDriverWait类,显性等待类:
    # WebDriverWait(driver,等待时长,循环周期).until/until_not(判断条件)
    # A. until方法:表示直到满足XXX条件,就不再等待了(在等待时间范围内)
    # B. until_not方法:表示直到不满足XXX条件,就不再等待了
    # 判断条件 : 比如等待某个元素可见;等待新的窗口出现,等待元素包含某个文件内容

    # (2)expected_conditions模块,提供了一系列期望发生的条件

    # A. 使用之前,引入相关的库:
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By

    # B. 先确定元素的定位表达式
    web_locator = 'xxxx'

    # C. 调用WebDriverWait类设置等待总时长、轮询周期
    WebDriverWait(webdriver 对象名,等待总时长,轮询周期).until(判断条件)

    # D. 使用expected_conditions对应的方法来生成判断条件
    # EC.方法名(定位方式,定位表达式)
    EC.presence_of_element_located((By.CSS_SELECTOR,web_locator))

    # 等待10秒钟,每隔0.5秒去查看login_name对应的元素是否可见;如果可见,等待结果;如果不可见,则继续等待,直到10s结束,如果元素还是不可见,则抛出超时异常
    login_name = 'XXXX'
    WebDriverWait(driver,10,0.5).until(EC.visibility_of_element_located((By.NAME,login_name)))
  • 相关阅读:
    Shiro缓存整合EhCache
    Shiro缓存整合EhCache
    Shiro缓存整合EhCache
    Shiro缓存整合EhCache
    Shiro缓存整合EhCache
    Eclipse中配置Ehcache提示信息
    Eclipse中配置Ehcache提示信息
    Eclipse中配置Ehcache提示信息
    基本类型包装类
    StringBuilder类
  • 原文地址:https://www.cnblogs.com/gotesting/p/9908308.html
Copyright © 2011-2022 走看看