Python页面加载的等待方式总结


Posted in Python onFebruary 28, 2021

1、显式等待

它指定要查找的节点,然后指定一个最长的等待时间,如果规定时间内加载出来了这个节点,就返回查找的节点;如果规定时间内没有加载出该节点,就抛出超时异常。

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
broswer = webdriver.Chrome()
broswer.get('https://www.jd.com/')
wait = WebDriverWait(broswer, 20)
input_q = wait.until(EC.presence_of_element_located((By.ID, 'key')))
button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.button')))
print(input_q, button)

2、隐式等待

当使用隐式等待执行测试的时候,如果Selenium没有在DOM中找到节点,将继续等待,超出设定时间后,则抛出找不到节点的异常。换句话说,当查找节点而节点并没有出现的时候,隐式等待将等待一段时间再查找DOM,默认时间是0,示例如下:

from selenium import webdriver
browser = webdriver.Chrome()
browser.implicitly_wait(10)
browser.get('https://www.jd.com/')
input_q = browser.find_element_by_class_name('button')
print(input_q)

知识点扩展:

Python里有三种等待的方式:

1、强制等待

导入定时等待库

from time import sleep 或者 import time

time.sleep(10) # 表示强行等待10s在执行下一句代码 这种等待方式时间到了就会执行下个语句,但比较死板,不能保证在等待的时间内元素真正被加载了出来。而且如果等待的元素已经被加载出来,还需要等待到时间才会执行下一句,浪费时间。

2、 隐性等待

driver.implicitly_wait(30) #等待30s
这个等待表示在规定的时间内页面的所有元素都加载完了就执行下一步,否则一直等到时间截止,然后再继续下一步。
这个方法的缺点是你需要的元素已经加载出来了,但页面还没有加载完,再需要继续等待页面加载完才能执行下一步操作。

3、显性等待

需要导入的包

from selenium.webdriver.support.wait import WebDriverWait #导入显性等待的包

from selenium.webdriver.support import expected_conditions as EC #判断所需要的元素是否已经被加载出来 

from selenium.webdriver.common.by import By #定位

到此这篇关于Python页面加载的等待方式总结的文章就介绍到这了,更多相关Python页面加载的等待方式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现的简单抽奖系统实例
May 22 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
对Python 2.7 pandas 中的read_excel详解
May 04 Python
Python 处理图片像素点的实例
Jan 08 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
Oct 10 Python
Python输出指定字符串的方法
Feb 06 Python
Python 防止死锁的方法
Jul 29 Python
python 贪心算法的实现
Sep 18 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 Python
Pygame Time时间控制的具体使用详解
Nov 17 Python
Python Selenium操作Cookie的实例方法
Feb 28 #Python
Python Selenium异常处理的实例分析
Feb 28 #Python
python常量折叠基础知识点讲解
Feb 28 #Python
Django后端按照日期查询的方法教程
Feb 28 #Python
python元组拆包实现方法
Feb 28 #Python
python定义具名元组实例操作
Feb 28 #Python
python推导式的使用方法实例
Feb 28 #Python
You might like
php异常处理使用示例
2014/02/25 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
PHP答题类应用接口实例
2015/02/09 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PHP实现上传多文件示例代码
2017/02/20 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
梳理一下vue中的生命周期
2020/12/30 Vue.js
Python的Django框架中的数据过滤功能
2015/07/17 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
大学生优秀团员事迹材料
2014/01/30 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
项目合作协议书范本
2014/04/16 职场文书
教师节演讲稿
2014/05/06 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
学校2014年度工作总结
2014/12/06 职场文书
加薪通知
2015/04/25 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
python自动计算图像数据集的RGB均值
2021/06/18 Python