3 分钟了解 seliky
seliky:一个支持RF的selenium封装库,在不影响原功能的基础上,新增了以下特性:
1. 支持robotframework框架
2. 当前元素会高亮闪烁。在执行时能够肉眼看到点了哪个元素
3. 支持弹性定位,可以应对有穷性可变化的元素
4. 添加了新功能:如cookie登录、各种事件组合等功能
为什么要封装?
selenium-library和selenium虽然名字相同,其实是截然不容的两个库,原生语法可以更加方便理解selenium源码。
元素闪烁可以清楚知道执行到哪里了,可以更加方便排查问题。
即便是可变元素,仍然可以像平常一样写定位,不用来回改改改。
安装它以了解更多...
安装
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自动化的小伙伴们,还在等什么呢,赶紧下载安装吧,在项目中用起来~