1. webium简介及安装
webium是基于python的一个Page Object实现, API简单友好,可以在一定程度上提升Web UI测试的生产力,值得我们进行学习。 不过注意: webium要配合selenium一起使用。 项目主页 文档 例子 一般来说我们会经常用到下面几个类 webium.Find: 在page中定位单个元素 webium.Finds: 在page中定位一 …
按主题探索文章、教程与工程实践。
8 篇内容webium是基于python的一个Page Object实现, API简单友好,可以在一定程度上提升Web UI测试的生产力,值得我们进行学习。 不过注意: webium要配合selenium一起使用。 项目主页 文档 例子 一般来说我们会经常用到下面几个类 webium.Find: 在page中定位单个元素 webium.Finds: 在page中定位一 …
页面类是Page Object设计模式的核心。在使用webium创建页面类的时候,必须继承 如果页面的url是固定的,那么可以在 方法中指定它,然后你就可以使用 方法来跳转到该页面。 url也可以被定义成是类的静态属性。 页面类必须持有 的实例以便操控浏览器。默认情况下,webium会使用 来创建 实例。如果你需要获取driver的实例,你可以使用 来达到目 …
方法可以在页面或者其他容器中定位元素,返回 实例。 Find方法的主要用到2个参数分别是 : 定位策略,比如By.ID : 定位元素时用到的具体属性值 在定位一些自定义的对象时我们可以指定 参数来定制化 的行为。 上面的例子里,我们定义了 类,继承自 ,用以代表一般性的链接。 方法用来判断链接是否是https协议的。 表示定位元素,并返回类型是 的实例。 有 …
方法的用法跟 方法基本是一致的,不过返回的是 列表。 我们甚至可以动态返回满足条件的一组元素。
我们可以使用容器(containers)来限制定位范围,webium的containers特性可以让我们的定位代码更加干净容易理解,避免大规模的使用难懂晦涩的xpath。 考虑下面的页面结构,为了可以遍历每一个搜索结果,我们可以使用下面的代码
逻辑容器适用于这样的场景:页面上有一些元素确实存在于容器中,但这些元素都有可以唯一能够定位的属性,比如id等,而我们为了代码的可读性,往往希望将这些元素放在某个容器中。 比如页面上的菜单元素,每个子菜单都有id属性,不过为了代码能够更好的被他人理解,我们希望将子菜单放到菜单容器里。 逻辑容器和普通容器的区别: 普通容器需要继承自 ,而逻辑容器不需要 定义逻辑 …
判断元素是否存在。所有的容器类(BasePage, Container和Logical Container)都有 方法,如果对应名称的元素在页面上存在,该方法返回true。 注意:如果是通过Finds去定位的一组元素,我们也可以调用 方法来判断这组元素的存在性。如果这一组元素全部存在,返回True,如果有任意1个元素不存在,返回False。 默认情况下, 方 …
是python wait库的简单封装。 具体实现看这里 可以看成是webium的全局配置,有下面的一些配置项目,具体看这里 具体例子