zoukankan      html  css  js  c++  java
  • 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(122. 买卖股票的最佳时机 II)
    LeetCode(485. 最大连续1的个数)

    约瑟夫问题
    链表
    队列
    稀疏数组
    乐优商城项目学习
    LeetCode_Climbing Stairs
    数据结构&&算法基础知识
  • 原文地址:https://www.cnblogs.com/sue2015/p/14777603.html
Copyright © 2011-2022 走看看