seliky是本人单独开发的一个selenium封装库,非常好用,公司里我所在一整条业务线都用上了噢,可以通过pip来安装,下面简单介绍一下。

一. seliky特性

  • 语法简洁,省去了原生冗长的句式。
  • 支持robotframework框架,并采用了面向关键字的思想。是采用RF做自动化的公司的福音。
  • 在界面执行时元素会高亮闪烁,能够肉眼看到点了哪个元素,非常方便调试。
  • 支持弹性定位,可以应对有穷性可变化的元素,再也不怕元素变来变去了。
  • 具备强大的异常机制,抛出与不抛出可自定义。
  • 自带日志打印,三种颜色更加好区分。
  • 兼容原生语法。并不是说干掉了selenium,而是基于selenium写的。

二. 安装

  库采用python编写,已经发版了,可以直接使用pip安装。

  pip install seliky

三. demo案例

  1. 在py中使用(demo.py)

import time
from seliky import WebDriver2 # 自带高亮 class Page:
"""元素定位和界面信息"""
baidu_url = "http://www.baidu.com"
baidu_fanyi_url = "https://fanyi.baidu.com/#zh/en/"
search_box = 'id=kw'
search_button = ['id=wrong id', '//@class=wrong xpath', 'id=su', "css=wrong css"] # 只要有一个是对的就能定位到
search_words = ["小唐", "小李", "小刘"] def test_baidu():
"""百度搜索测试"""
p = Page()
driver = WebDriver2()
driver.get(p.baidu_url)
for i in p.search_words:
driver.clear(p.search_box)
driver.send_keys(i, p.search_box)
driver.click(p.search_button)
time.sleep(1)
time.sleep(3)
origin_driver = driver.driver # selenium原生driver
origin_driver.get(p.baidu_fanyi_url) # 语言优势:也可以使用原生driver的方法
time.sleep(5)
driver.quit() if __name__ == '__main__':
test_baidu()

  2. 在robotframe中使用(demo.robot)

*** Settings ***
Library WebDriver2.py *** Variables ***
# 元素定位和界面信息
${baidu_url} http://www.baidu.com
${baidu_fanyi_url} "https://fanyi.baidu.com/#zh/en/"
${search_box} id=kw
@{search_button} id=wrong id //@class=wrong xpath id=su css=wrong css # 弹性定位:列表中只要有一个元素是对的,就能定位到
@{search_words} 小唐 小李 小刘 *** Test Cases ***
# 百度搜索测试
demo
get ${baidu_url} # 进入百度首页
FOR ${i} IN @{search_words}
clear ${search_box} # 清除搜索框
send keys ${i} ${search_box} # 搜索框输入搜索词
click ${search_button} # 点击搜索按钮
END
sleep 3
quit

  在做ui自动化的小伙伴们,还在等什么呢,赶紧下载安装吧,在项目中用起来~

作者留言

  原创不易,如果觉得本文对你有帮助,记得打赏噢O(∩_∩)O,您的支持是我创作路上最大的动力~

原创ui自动化组件库-seliky的更多相关文章

  1. 小程序-文章:微信小程序常见的UI框架/组件库总结

    ylbtech-小程序-文章:微信小程序常见的UI框架/组件库总结 1.返回顶部 1. 想要开发出一套高质量的小程序,运用框架,组件库是省时省力省心必不可少一部分,随着小程序日渐火爆,各种不同类型的小 ...

  2. 微信小程序常见的UI框架/组件库总结

    想要开发出一套高质量的小程序,运用框架,组件库是省时省力省心必不可少一部分,随着小程序日渐火爆,各种不同类型的小程序也渐渐更新,其中不乏一些优秀好用的框架/组件库. 1:WeUI 小程序–使用教程 h ...

  3. [Android] Android 注解绑定UI View组件库 ButterKnife 的使用

    ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤.是大神JakeW ...

  4. ATOMac - 基于Python的Mac应用Ui自动化库

    ATOMacTest 一.缘 起 近期工作需要对一款Mac端应用实现常用功能的自动化操作,同事推荐ATOMac这款工具,这几天简单研究了下,同时也发现现网介绍ATOMac的资料非常有限,故在此记录下A ...

  5. 手机APP自动化之uiautomator2 +python3 UI自动化

    题记: 之前一直用APPium直到用安卓9.0  发现uiautomatorviewer不支持安卓 9.0,点击截屏按钮 一直报错,百度很久解决方法都不可以,偶然间看见有人推荐:uiautomator ...

  6. 利用webpack打包自己的第一个Vue组件库

    先说一下这篇文章的诞生原因.我们有一个这样的项目,类似或者说就是一个仪表板-Dashboard,其中的各个部分可能不是一个部门写的……我们需要提供拖拽布局(大小和位置)和展示的能力.要实现这样一个功能 ...

  7. Python UI自动化

    Python3--Uiautomator2--Pytest--Alure使用 官方源码GitHub地址:https://github.com/openatx/uiautomator2 介绍 uiaut ...

  8. Web 前端 UI 组件库文档自动化方案 All In One

    Web 前端 UI 组件库文档自动化方案 All In One 需求 自动化 动态 好用 markdown element-ui 中示例和说明按照一定规则写在md文件中,调用md-loader将md文 ...

  9. 16款优秀的Vue UI组件库推荐

    16款优秀的Vue UI组件库推荐 Vue 是一个轻巧.高性能.可组件化的MVVM库,API简洁明了,上手快.从Vue推出以来,得到众多Web开发者的认可.在公司的Web前端项目开发中,多个项目采用基 ...

  10. [转载]前端——实用UI组件库

    https://www.cnblogs.com/xuepei/p/7920888.html Angular UI 组件 ngx-bootstrap 是一套Bootstrap 组件 官网:https:/ ...

随机推荐

  1. day42 6-5 springMVC调度器、ModelAndView、配置thymeleaf模板引擎 & 6-6 thymeleaf语法 & 6-7 springMVC拦截器 & 6-8 设置请求编码过滤器Filter

    springMVC调度器 - DispatcherServlet - SpringMVC框架的入口 定义 DispatcherServlet成为调度器,配置在web.xml文件中,用于拦截匹配的请求. ...

  2. 【JVM调优】Day04:总结前三日内容(GC+算法*4+简单回收器*3三色标记,CMS+G1+ZGC,参数个数+OOM+调优参数)

  3. Spring学习笔记 - 第二章 - 注解开发、配置管理第三方Bean、注解管理第三方Bean、Spring 整合 MyBatis 和 Junit 案例

    Spring 学习笔记全系列传送门: Spring学习笔记 - 第一章 - IoC(控制反转).IoC容器.Bean的实例化与生命周期.DI(依赖注入) [本章]Spring学习笔记 - 第二章 - ...

  4. Mqttnet内存与性能改进录

    1 MQTTnet介绍 MQTTnet是一个高性能的 .NET MQTT库,它提供MQTT客户端和MQTT服务器的功能,支持到最新MQTT5协议版本,支持.Net Framework4.5.2版本或以 ...

  5. Vue 响应式原理模拟以及最小版本的 Vue的模拟

    在模拟最小的vue之前,先复习一下,发布订阅模式和观察者模式 对两种模式有了了解之后,对Vue2.0和Vue3.0的数据响应式核心原理 1.Vue2.0和Vue3.0的数据响应式核心原理 (1).  ...

  6. 3、mysql着重号解决关键字冲突

    1.着重号(`  `): 使用着重号(` `)将字段名或表名括起来解决冲突:保证表中的字段.表名等没有和保留字.数据库系统名或常用方法名冲突

  7. vite+ts+vue3+router4+Pinia+ElmPlus+axios+mock项目基本配置

    1.vite+TS+Vue3 npm create vite Project name:... yourProjectName Select a framework:>>Vue Selec ...

  8. [python] 基于wordcloud库绘制词云图

    词云Wordcloud是文本数据的一种可视化表示方式.它通过设置不同的字体大小或颜色来表现每个术语的重要性.词云在社交媒体中被广泛使用,因为它能够让读者快速感知最突出的术语.然而,词云的输出结果没有统 ...

  9. [C#]C++/CLI中^的含义

    例子 // here normal pointer P* ptr = new P; // usual pointer allocated on heap P& nat = *ptr; // o ...

  10. 深入理解C++虚函数底层机制和RTTI运行时类型识别

    当调用一个虚函数时,被执行的代码必须与调用函数对象的动态类型相一致:指向对象的指针或引用的类型是不重要的,编译器是如何高效地提供这种行为呢?大多数编译器是使用virtual table和virtual ...