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 怎么选下拉菜单里的值

robotframework环境搭建-Selenium2Library导入失败

无法在机器人文件中导入 Selenium2Library