zoukankan      html  css  js  c++  java
  • python+selenium基础篇,三种等待方式,显示、隐式、强制等待

    1、显示等待:

    from selenium import webdriver
    from time import sleep
    from selenium.webdriver.support.ui import WebDriverWait   #显示等待针对元素操作
    #EC预期条件类(里面主要有一些判断元素是否出现,弹出框是否出现,以及是否出现新窗口等。)
    #EC用的比较多的就是和显示等待一起使用,通过显示等待的方法来循环判断是否元素是否出现
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By#用于元素定位
    
    dr=webdriver.Firefox()
    dr.get("https://www.baidu.com/")
    dr.maximize_window()
    sleep(2)
    dr.find_element_by_css_selector('#kw').send_keys(u'测试')
    sleep(2)
    element=WebDriverWait(dr,5,0.5).until(EC.presence_of_element_located((By.ID,'su')))
    #显示等待,判断搜索按钮是否存在,每隔0.5秒刷新一次,5秒内没找到报异常
    element.click()
    sleep(2)
    dr.quit()

    2、隐式等待

    from time import sleep,ctime
    from selenium.common.exceptions import NoSuchElementException
    from selenium import webdriver
    
    dr=webdriver.Firefox()
    dr.get("https://www.baidu.com/")
    dr.maximize_window()
    dr.implicitly_wait(5)#设置隐式等待,等待时间5秒,隐式等待全局生效
    try:
        print(ctime())
        dr.find_element_by_css_selector("#kw").send_keys("python")
        dr.find_element_by_css_selector("#su1").click()
    except NoSuchElementException as xx:
        print(xx)
    finally:
        print(ctime())
    
    sleep(2)
    dr.quit()

    3、强制等待

    from selenium import webdriver
    from time import sleep
    
    dr=webdriver.Firefox()#打开浏览器
    dr.get("https://www.baidu.com")#打开百度
    dr.maximize_window()#浏览器最大化
    sleep(3)#强制等待3秒
    dr.quit()#关闭浏览器
  • 相关阅读:
    【MySQL 5.7 Reference Manual】15.4.2 Change Buffer(变更缓冲)
    从MySQL slave system lock延迟说开去
    一文搞懂Raft算法
    Relinking Oracle Home FAQ ( Frequently Asked Questions) (Doc ID 1467060.1)
    Oracle 单实例 Relink Binary Options 说明
    oracle upgrade best pratics
    sysbench安装、使用、结果解读
    Linux 进程管理之四大名捕
    iOS 严重问题解释(crash)
    iOS 图片剪切和压缩的几个方法
  • 原文地址:https://www.cnblogs.com/jinbiaobowen/p/13517708.html
Copyright © 2011-2022 走看看