• Python+Selenium


    元素:存在 > 可见 > 可用

    需要判断元素状态

    等待方式1:强制等待  -- 辅助

    设置等待几秒,就必须等待几秒

    示例:

    from time import sleep
    sleep(3)

    强制等待3秒

    等待方式2:智能等待:隐性等待 -- 辅助

     指定等待上限时间,当找到元素后,即可进行下一步,不需要等待剩下时间。

    每个元素找不到时都会进行隐形等待,找到了则不需要。

     implicity_wait

    1.每个会话只调用一次

    2.找元素、命令执行完成

    示例:

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get("www.baidu.com")
    driver.implicitly_wait(10) #只需要在会话启动后调用一次即可

     智能等待10秒

    等待方式3:智能等待:显性等待  -- 常用

    由两部分组成:等待(WebDriverWait类) + 条件(expected_condition)

    WebDriverWait(driver, 超时时间, 查看周期=0.5).until(条件)   #每0.5秒查看一次是否满足条件

    WebDriverWait(driver, 超时时间, 查看周期=0.5).not_until(条件)

    常用的三种元素判断方法

    presence_of_element_located()    #元素存在
    visibility_of_element_located()   #元素可用
    element_to_be_clickable()       #元素可点击

    示例:

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get("www.baidu.com")

    wait = WebDriverWait(driver,20) #20秒后超时。这句话只需要写一次,后面只需通过条件判断元素即可
    loc = (By.ID,'kw')
    wait.until(EC.presence_of_element_located(loc)) #判断元素存在,这里不需要解包

    每当有新元素出现时,用条件判断一下元素是否存在/可见/可用

  • 相关阅读:
    游LeetCode一月之闲谈
    新年计划与企盼
    F#周报2019年第51&52期
    F#周报2019年第50期
    F#周报2019年第49期
    F#周报2019年第48期
    F#周报2019年第47期
    F#周报2019年第46期
    F#周报2019年第45期
    关于我的随笔
  • 原文地址:https://www.cnblogs.com/sue2015/p/14777603.html
Copyright © 2020-2023  润新知