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自动化的小伙伴们,还在等什么呢,赶紧下载安装吧,在项目中用起来~