js等待5秒后执行_Python+selenium自动化之等待
Selenium学习和使用过程中,比较常见的一个问题就是,弹窗定位不到、元素定位不到等,除了页面有frame、多窗口,就是没有加等待。代码运行的速度远远高于浏览器加载的速度,就像双人跑步运动,一个人快一个人慢总是会摔倒,浏览器页面没有加载出来元素,程序就执行相应的代码,就是抛出异常。
等待,selenium中提供常用的三种:强制等待time.sleep()、隐性等待implicitly_wait()、显性等待WebDriverWait()。
强制等待time.sleep()
强制等待字面意思,强制程序等待读秒到一定时间才执行下一步。需要导入time模块才可以使用。下面是之前文章里的代码。
登录企业邮箱后,点击设置按钮,必须等待3秒,才去执行下一步的操作,不管设置页面有没有加载完成。这样有时候会造成时间的浪费,影响程序执行的速度。
隐性等待implicitly_wait()
隐型等待implicitly_wait()就是在一定的时间内等待页面加载完成,比如隐性等待10秒,5秒页面加载完成,则结束等待,执行下一步;如果10秒钟还没有加载完成也会执行下一步。浏览器加载完成与否可以看浏览器标签栏的状态按钮,“X”就是没加载完成,但是有些页面元素加载完成,但是有些JS、图片加载慢元素,导致要一直等到最大等待时长才进行下一步。
隐性等待对整个driver的周期都起作用,所以只要设置一次即可。
显性等待WebDriverWait()
显示等待是针对元素个体进行相关等待判定,WebDriverWait()的定义如下:
- driver - WebDriver实例(如,Firefox, Chrome或Remote)
-timeout-超时前的秒数
- poll_frequency -调用之间的睡眠间隔,默认情况下是0.5秒。
- ignored_exceptions -调用期间忽略的异常类的可迭代结构。
默认情况下,它只包含NoSuchElementException。
WebDriverWait()程序每隔xx秒看一眼,配合该类的until()和until_not()方法,根据判断条件而进行灵活地设置等待时长和睡眠间隔。如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException。
在实际过程中,可以选择相应的等待方式,我最常用的就是显示等待,然后可以写一个公共类调用即可,就是上图中loc中的两个参数。
js等待5秒后执行_Python+selenium自动化之等待相关推荐
- js等待5秒后执行_NBA赛场搞笑犯规:波波维奇开场5秒执行砍鲨战术,奥尼尔一脸茫然...
虽然NBA赛场总是充满着激情与对抗,却从来不乏让人忍俊不禁的搞笑瞬间.沙克·奥尼尔便是NBA中的一大活宝,有他在的地方总是能让人哈哈大笑.07年全明星的一场训练中,奥尼尔突然在中场附近直接和詹姆斯斗起 ...
- js等待5秒后执行_厦门同安首台智能垃圾分类回收柜机投用 扫二维码5秒后回收变现...
居民在智能垃圾分类回收柜机前排起了队. 台海网9月11日讯 据厦门晚报报道 一秒扫描,五秒到账,垃圾分类实现智能化,不仅能自动识别称重,还能变废为宝,兑换成商品.昨天,一台智能垃圾分类回收柜机在同安区 ...
- js如何让方法在延迟两秒后执行
var int=self.setInterval(function(){ // 这个方法是说在延迟两秒后执行大括号里的方法 location.reload(); // 这个方法是刷新 ...
- python三种等待方式_Python selenium 三种等待方式详解
本文摘自:http://blog.csdn.net/huilan_same/article/details/52544521 发现太多人不会用等待了,博主今天实在是忍不住要给大家讲讲等待的必要性. 很 ...
- android 代码等待一秒,【报Bug】安卓微信旧版本7.0.2 ,支付完成,等待几秒后,再点击完成 回到小程序,跳转不了页面。...
详细问题描述 微信旧版本7.0.2 ,支付完成,等待几秒后,再点击完成 回到小程序,跳转不了页面. (DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你 ...
- php多少秒后跳转_php等待几秒后跳转
php等待几秒后跳转 一.PHP脚本控制跳转方式,通过改写HTTP头信息来进行跳转 a)header refresh方式:<?php header("refresh:5;url=htt ...
- html 跳转后关闭当前页面,js实现3秒后关闭当前页面
1.js实现3秒后关闭当前页面 var time=3; function closeWindow(){ window.setTimeout('closeWindow()',1000); if(time ...
- python的等待代码是什么_Python selenium 三种等待方式详解
1.目的背景 解决问题:下拉框定位不到.弹框定位不到-各种定位不到,其实大多数情况下就是两种问题:1 有frame,2 没有加等待. 原因:代码运行速度快,而浏览器加载渲染速度慢 解决办法:加等待,目 ...
- vue多个等待几秒再执行,可以用await加setTimeout实现
用的vue,刚开始一直想只用setTimeout //错误示意 liucheng(){var _this = this;_this.active = 'flipped';setTimeout(_thi ...
最新文章
- 云原生生态周报 Vol.9| K8s v1.15 版本发布
- 2022版全球及中国消防设备市场营销策略分析与竞争趋势展望报告
- 西工大java高级网络编程_奥鹏西工大16春《JAVA高级网络编程》平时作业
- 笨方法学python3 mobi_[下载]Learn Python 3 the Hard Way(已更新完整版PDF\AZW3\EPUB\MOBI)...
- Facebook Messenger 被曝漏洞,可导致恶意软件获得持续访问权限(详细分析)
- 送给那些渐渐远离的朋友(转载)
- 2021-1-28Linux学习纪要
- Nand Flash驱动程序分析
- Thread 1: signal SIGABRT问题解决
- window 文件夹 标题栏 工具栏不见了
- 电脑连不上ishanghai_i-Shanghai免费上网将不限时 详解如何上网不掉线
- python知道三角形三边求面积(海伦公式)
- 信息系统项目管理师---第五章 项目范围管理
- pandas——描述性统计方法和时间类型
- Matlab实用程序--图形应用-阶梯图
- carsim与simulink联合仿真-matlab版本切换
- SSM框架自学笔记--------巨细!!!!!!!!
- 男人健康八年一个转折
- 素问·阴阳应象大论原文
- 电平触发器(D触发器)
热门文章
- 喵哈哈村的魔法考试 Round #5 (Div.2) C
- 基于Delphi的Socket I/O模型全接触
- USACO_2_1_The Castle
- Bitmap too larget to be uploaded into a texture的解决方法
- spring mvc异常统一处理(ControllerAdvice注解)
- 解决使用RabbitTemplate操作RabbitMQ,发生The channelMax limit is reached. Try later.问题
- Eclipse运行时无法加载主类的解决方法
- BigDecimal空指针异常——个人应用
- CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
- 为什么CSS使用假元素?