Python编程_Selenium2Library源码分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python编程_Selenium2Library源码分析相关的知识,希望对你有一定的参考价值。
[Package] keywords
所有关键字封装
[Class] _waiting.py
等待函数的条件判断, 替换sleep, 在依次以条件逻辑执行较多用例时可以有效节省执行等待时间, 快速定位问题
_wait_until(self, timeout, error, function, *args)
概述: 直到function(*args)为True时return None, 为False则return error, 超时时间timeout
参数:
error: 初始化为超时异常
function: 条件判断, 返回True or False
return: None or error
1 def _wait_until(self, timeout, error, function, *args): 2 error = error.replace(‘<TIMEOUT>‘, self._format_timeout(timeout)) 3 def wait_func(): 4 return None if function(*args) else error 5 self._wait_until_no_error(timeout, wait_func)
_wait_until_no_error(self, timeout, wait_func, *args)
概述: 直到wait_func(*args)为False时return, 超时则抛出超时异常
1 def _wait_until_no_error(self, timeout, wait_func, *args): 2 timeout = robot.utils.timestr_to_secs(timeout) if timeout is not None else self._timeout_in_secs 3 maxtime = time.time() + timeout 4 while True: 5 timeout_error = wait_func(*args) 6 if not timeout_error: return 7 if time.time() > maxtime: 8 raise AssertionError(timeout_error) 9 time.sleep(0.2)
最终调用的都是_wait_until_no_error(self, timeout, wait_func, *args). 在层层调用中, 使用到的Python语法, 一是函数嵌套, 而是"一切皆为对象", 函数也可做参数传递
以上是关于Python编程_Selenium2Library源码分析的主要内容,如果未能解决你的问题,请参考以下文章
RobotFramework:python+robotframework+selenium2library测试环境部署说明文档
python Selenium2Library element操作的健壮性封装普通操作不受影响
Robot Framework之扩展打开不同版本的谷歌浏览器
Robotframework RIDE+Selenium2Library 怎么选下拉菜单里的值