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)) #判断元素存在,这里不需要解包

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

  • 相关阅读:
    转:高效使用 SSH 的 16 个技巧
    关于flash的多文件上传的http头
    使用Xmind画流程图、脑图
    用html5+flash两种方案实现前端长文转图
    用“夜间模式”模式(javascript书签)浏览网页
    浏览器上传图片技术的一点分析
    需求管理的关键步骤其实只有一个
    基于Google GWT的图形编辑框架gwthtml5graph发布了!
    软件需求与天女散花
    你和软件需求,谁管谁
  • 原文地址:https://www.cnblogs.com/sue2015/p/14777603.html
Copyright © 2011-2022 走看看