简介
? Splinter是一个使用Python开发的开源Web应用自动化测试工具,它可以帮助你实现自动浏览站点和与其交互。
特性
- 可以模拟浏览器行为,访问指定的URL,并且可以指定不同的浏览器类型。比如firefox或者chrome等。不同的浏览器只要在本地安装对应的驱动,就可以在代码中通过名称指定来访问。
- 支持cookie操作,可以很方便的添加和删除cookie;
- 支持模拟鼠标的动作,比如滑动到某个按钮上,焦点离开某个按钮等等,对于带有动态提示的页面,如搜索引擎的关键字输入框的动态提示,可以非常方便的测试。
- 支持模拟键盘的输入操作,对input等控件的输入可以模拟用户的type过程。
- 支持直接运行js或者调用页面的js。
- 支持模拟上传文件。
- 对radio和checkbox有专门的api支持,非常方便;
- 支持快速的获取页面的元素或者判断是否存在文本,用于开发判断页面提示信息是否准确非常方便。
- 最重要的,splinter的API非常简单,配合官方的文档学习成本几乎是0,当然你得懂一些python语法。如果你比较了解js和css,你可能会像喜欢jquery一样喜欢它;
应用场景
- 自动化表单处理
- 复杂的表单数据提交
- 表单安全验证
- 自动化流程处理
- 流程状态验证
- 数据断言验证
常用元素定位方法
- 唯一性定位(id定位):
browser.find_by_id('id')
- 控件名定位(name定位):
browser.find_by_name('name')
- 样式型定位(css定位):
browser.find_by_css('.h1')
- 值定位(value定位):
browser.find_by_value('value')
- 内容型定位(text定位):
browser.find_by_text('text')
- 超链接定位(link定位):
browser.find_link_by_href('url')
- 路径式定位(xpath定位):
browser.find_by_xpath('//path')
- 标签定位(tag定位):
browser.find_by_tag('tag')
常用操作事件
- 点击事件:
click
- 填充事件:
fill
- 下拉框选择事件:
select
- 单选框选择事件:
choose
- 复选框选择事件:
check/uncheck
- 鼠标事件:
mouse_over/mouse_out
- 键入式填充事件,类似于MouseDown和MouseUp事件:
type
第一个Splinter脚本
import splinter
if __name__ == "__main__":
#创建浏览器,参数为浏览器名称
browser = splinter.Browser('chrome')
#访问百度
browser.visit("https://www.baidu.com")
#百度首页的输入框name为'wd',实现自动输入。第一个参数为组件的name,第二个参数为内容
browser.fill('wd','马化腾')
#寻找id为'su'的组件,并执行点击事件
browser.find_by_id('su').click()
?