python+selenium基础篇,三种等待方式,显示、隐式、强制等待
2024-09-05 10:05:02
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()#关闭浏览器
最新文章
- python处理命令行参数
- MySQL查询优化之explain的深入解析
- 在Ubuntu下配置舒服的Python开发环境
- HttpClientUtils.java
- php对csv文件的读取,写入,输出下载操作
- Mac OS环境变量配置(Android Studio之Gradle)
- java学习笔记_GUI(3)
- Altium Designer规划电路板
- Unity UI和引用的管理中心
- HTML5简单入门系列(六)
- 使用ToggleButton和StackPanel+Border实现圆角开关按钮动画效果
- 关于IOS的Cocoapods相关问题
- hadoop 及hbase zookeeper 经常出现问题
- 解决Yii2邮件发送问题(结果返回成功,但接收不到邮件)
- java多线程知识点概述
- AsciidocFX编辑器小贴士
- for循环找出2到100的质数(素数)
- HBase表重命名
- Gson序列化问题导致的内存溢出,tip:Background sticky concurrent mark sweep GC freed
- js实现打印