zoukankan      html  css  js  c++  java
  • 设置元素等待

    隐式等待

    driver.implicitly_wait(10)

    默认参数的单位为秒,本例中设置等待时长为10秒。当脚本执行到某个元素定位时,如果元素可以定位,则继续执行;

    如果元素定位不到,则它将以轮询的方式(0.5s)不断地判断元素是否被定位到。假设在第6秒定位到了元素则继续执行,若直到超出设置时长(10秒)还没有定位到元素,则抛出异常

    优点:一次设置,全局通用,

    缺点:浪费时间,每次定位元素前都至少需要0.5秒的轮询,即对以后的所有元素都生效

    from selenium import webdriver
    import time
    driver = webdriver.Chrome('D:\toolschromedriver.exe')
    #设置隐式等待
    driver.implicitly_wait(10)
    driver.get('https://www.baidu.com/')
    driver.find_element_by_id('kw').send_keys('松勤 ')
    # time.sleep(2)
    driver.find_element_by_partial_link_text('腾讯课堂').click()
    driver.close()

    显示等待

    使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)

    优点:只对声明了显示等待的元素生效

    缺点:麻烦,import 3个,使用也麻烦

    from selenium import webdriver
    from selenium.webdriver.common.by import By  #设置元素定位选用哪种方法
    from selenium.webdriver.support.ui import WebDriverWait  #提供等待方法类
    from selenium.webdriver.support import expected_conditions as EC  #提供判断条件
    import time
    driver = webdriver.Chrome('D:\toolschromedriver.exe')
    #get元素会等待所有元素加载完成
    driver.get('https://www.baidu.com/')
    driver.find_element_by_id('kw').send_keys('松勤 ')


    #超时时间 10s,轮询时间0.5s,即每隔0.5秒检查一次,最多等待10s,返回元素对象
    ele = WebDriverWait(driver,10,0.5).until(
        EC.visibility_of_element_located(
            (By.LINK_TEXT,'松勤软件测试_腾讯课堂')
        )
    )
    ele.click()  #等价于driver.find_element_by_link_text('松勤软件测试_腾讯课堂').click()
    driver.close()

  • 相关阅读:
    计算器
    安卓第四周作业
    安卓第三次作业
    补10.21
    补:10.21
    增删改查
    android-數據庫
    安卓 -登陆界面
    android 第Ⅱ次作业
    第一个java代码
  • 原文地址:https://www.cnblogs.com/like1824/p/12966967.html
Copyright © 2011-2022 走看看