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()#关闭浏览器
  • 相关阅读:
    MVC中modelstate的使用
    [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:MVC程序中实体框架的Code First迁移和部署
    C# Lambda表达式
    利用委托自定义事件
    委托(Delegate)简介
    [C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
    选项卡实现
    滚动时div的背景图片随之滚动
    使用RGBa和Filter实现不影响子元素的CSS透明背景
    通过条件注释<!--[if IE]><!-->判断浏览器
  • 原文地址:https://www.cnblogs.com/jinbiaobowen/p/13517708.html
Copyright © 2011-2022 走看看