网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

pythonselenium系列(四)元素等待

一前言

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比青田网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式青田网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖青田地区。费用合理售后完善,10年实体公司更值得信赖。

在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位、操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和操作是核心技术。但是,在某些场景,脚本的运行并非预期那样,如,要操作的元素用常规方法无法识别、元素可以识别但在脚本运行时却未如期而至等。为了解决这些疑难杂症,接下来三节内容将会介绍处理这些问题的通用方法。

在本节,主要介绍元素等待的使用方法和场景,该方法是开发稳定、高容错性自动化脚本的前提。

 

二为什么需要等待?

元素等待是为了解决如下场景的问题:脚本执行时,脚本的执行速度和页面元素的加载速度未必一致,也就是说,可能出现脚本已经运行到某个元素,但该元素尚未加载到页面,此时脚本会因无法定位到该元素而导致执行失败。元素等待本质是为了解决时序上不匹配的问题。

 

三 selenium元素等待方法

适当的等待可以提高脚本的稳定性,selenium主要有三种等待方法:
1.强制等待 time.sleep(x);
2.显式等待 WebDriverWait;
3.隐式等待 implicitly_wait;
  

其中,三种等待方法的作用和区别,如下:

强制等待,也就是常说的死等待,使用time模块提供的sleep方法,脚本在等待sleep(x) x秒后才执行,此时脚本也许出现了无效等待,即元素已经出现,可以继续操作,但因指定的时间未到,脚本无法执行,因而,在实际Web UI开发中应杜绝sleep等待;

 

显式等待,WebDriver提供的针对元素级别的、灵活、智能的等待方法,通过配合until()、until_not()、ExpectedCondition等条件的使用,默认每500ms检查一次条件状态,可以及时将脚本从等待中唤醒,避免无效等待,在实际应用中推荐使用该方法。

该等待的调用方法如下:

WebDriverWait(driver,超时时长,调用频率,忽略异常).until(可执行方法,超时时返回的信息)

 

隐式等待,WebDriver提供的针对driver级别的适用整个生命周期的等待方法,该等待是全局设置,因而只需在实例化driver后设置一次即可。从等待作用上看,是可以满足需要的,但是考虑到实际应用场景,driver要等待的元素和脚本要操作的元素未必相同,也就是说,脚本要操作的元素已经出现,但因为设置了全局等待,driver也会继续等待页面上其他无关元素,直至整个页面加载完毕。因而,与显式等待相比,可能出现无效等待的情况。

 

四等待方法实战举例

1.强制等待方法应用实例

python selenium系列(四)元素等待

2.显式等待应用实例

python selenium系列(四)元素等待

 

3.隐式等待应用实例

python selenium系列(四)元素等待

 

五总结

本节主要介绍Web UI自动化中三种元素等待方法,并讲解了各自的优缺点,实际开发中推荐使用显示等待,最后,为了便于理解和应用,针对每种等待方法,编写了对应的脚本。

 

六其他资源

关于python selenium元素常用操作方法的视频讲解,请参看:http://i.youku.com/weiworld521 第 27节。


网页标题:pythonselenium系列(四)元素等待
链接分享:http://bjjierui.cn/article/jdhejj.html

其他资讯