• 三大等待


    等待选择:

    -1、隐性等待:全局设置,等待查找元素, 
    -2、显性等待:等待元素可以被点击,可见,
    -3、强制等待:多个系统交互的地方。(上传文件/执行js代码)

    1、强制等待  

    强制等待, time.sleep(), 时间不好控制。
    import time     
        time.sleep(1)

    2、隐性等待

    - 隐性等待
    - 全局设置,
    - 设置超时时间,超过超时时间:NoSuchElementException
    - 只能用来等待元素
    from selenium import webdriver
    # 设置全局等待时间
    driver.implicitly_wait(5)
    driver.get("http://www.baidu.com")  # 静态页面加载完成
    driver.find_element_by_xpath('//div[@id="u1"]//a[@name="tj_login"]').click()
    # 当你的操作带来了页面的变化 ,请一定要等待。

    3、显性等待   

    - 显性等待如果找不到元素
    - 报错,TimeoutException

     一般的条件:

      presence_of_element_located  等待某个元素出现
    visibility_of_element_located 某个元素是否可见
    element_to_be_clickable 某个元素是否可被点击
    一般步骤1、设置定时器 2、设置满足条件
    from  selenium.webdriver.support.wait import  WebDriverWait
    from selenium.webdriver.support import expected_conditions #预期条件
    #设置定时器   每隔0.5秒去查看 元素是否出现,共检查5秒
    wait = WebDriverWait(driver,5,poll_frequency=0.5)

    #设置满足的条件
    """presence_of_element_located 等待某个元素出现
    visibility_of_element_located 某个元素是否可见
    element_to_be_clickable 某个元素是否可被点击
    """
    locator = ("xpath",'//*[@id="1"]/h3/a')
    ele = wait.until(
    expected_conditions.element_to_be_clickable(
    locator=locator))
  • 相关阅读:
    FastJson中JSONObject用法
    复盘项目模板
    java Enum 类型
    Java List集合总结
    Spring boot 使用Slf4j 日志
    java.lang.reflect.UndeclaredThrowableException
    Intellij IDEA 中使用 Debug
    Java 13位时间戳转换日期格式
    Java 时间格式转换
    Spring boot 自定义注解
  • 原文地址:https://www.cnblogs.com/XXQQ123/p/11268191.html
Copyright © 2020-2023  润新知