一般在做selenium时会有,回放快慢的需求。

实现思路:

1.一般写selenium会自定义findelement函数,来实现查找元素。

2.在查找函数上加个睡眠时间的装饰器,函数执行完等待若干秒

3.同理可以举一返三的使用,装饰器,可以实现很多的功能。

def replay(retime):
"""
设置回放时间,装饰器
:param retime: 回放时间,毫秒
:return: 无
"""
def _wrapper(func):
def wrapper(*args,**kwargs):
ret=func(*args,**kwargs)
time.sleep(float(retime)/1000)
return ret
return wrapper
return _wrapper

找元素,函数:

@replay(500)   #等待500毫秒
def find_element(self,*loc):
"""
在指定时间内,查找元素;否则抛出异常
:param loc: 定位器
:return: 元素 或 抛出异常
"""
TimeOut = 20
try:
self.driver.implicitly_wait(TimeOut) #智能等待;超时设置 element = self.driver.find_element(*loc) #如果element没有找到,到此处会开始等待
if self.isDisplayTimeOut(element,TimeOut):
self.hightlight(element) #高亮显示
self.driver.implicitly_wait(0) # 恢复超时设置
return element
else:
raise ElementNotVisibleException #抛出异常,给except捕获 except (
NoSuchElementException,
ElementNotVisibleException
) as ex:
self.getImage
raise ex
else:
self.getImage

最新文章

  1. 记一次jdk升级引起的 Unsupported major.minor version 51.0
  2. 史上最全的 Redux 源码分析
  3. PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机
  4. web 打开子窗口提交数据或其他操作后 关闭子窗口且刷新父窗口实现
  5. Web UI自动化测试中绕开验证码登陆方式浅谈
  6. OD使用教程7
  7. CentOs安装Scrapy出现error: Setup script exited with error: command ‘gcc’ failed with exit status 1错误解决方案
  8. 关于学习Knockoutjs--入门(二)
  9. fcitx的安装_配置
  10. [转] KMP算法详解
  11. oracle exp imp
  12. 【stm32】ADC的规则通道和注入通道混合使用
  13. 程序中非action获得spring容器
  14. Linux内核源代码的学习过程转换完成细节
  15. HDU 6040---Hints of sd0061(STL)
  16. GO开发[一]:golang开发初探
  17. 面试 16:栈的压入压出队列(剑指 Offer 第 22 题)
  18. Unity手游之路手游代码更新策略探讨
  19. Robot Framework+AutoItLibrary使用
  20. BZOJ 2440 [中山市选2011]完全平方数 (二分 + 莫比乌斯函数)

热门文章

  1. <转>记dynamic的一个小坑 -- RuntimeBinderException:“object”未包含“xxx”的定义
  2. Win10正式版U盘安装教程
  3. Codeforces 180C - Letter - [简单DP]
  4. XmlHelpers
  5. [No0000B1]ReSharper操作指南2/16-ReSharper食谱与特定于域的教程
  6. char是所有类型中最短的 char多为8位,
  7. 2015年蓝桥杯省赛A组c++第5题(回溯算法填空)
  8. 50 行代码教你爬取猫眼电影 TOP100 榜所有信息
  9. replace函数的使用(替换单个和全局)
  10. mysql常用压测工具