1、前言
作为一名开发或者测试人员,你在测试 Web 应用时,是否常常被这些问题困扰:繁琐的页面元素定位,如同在茫茫大海里捞针;模拟用户交互操作时,不是这里出问题,就是那里不顺畅;还有那漫长的等待时间,严重影响测试效率,让本就紧张的开发周期变得更加捉襟见肘。
比如在测试一个电商网站时,需要模拟用户从登录、浏览商品、加入购物车到结算的一系列操作,期间可能会遇到页面加载缓慢,元素定位失败等问题,导致测试工作停滞不前。又或者在测试一个社交平台时,要验证点赞、评论、分享等功能,却因为模拟用户交互的复杂性,使得测试过程困难重重。这些问题不仅耗时费力,还容易遗漏一些潜在的缺陷,影响产品质量。
本篇将介绍的 Splinter,或许能为你解决这些难题,成为你的得力助手。
2、简介
Splinter 是用于 Web 应用自动化测试的 Python 库,提供简单一致的 API,支持多种自动化驱动(如 Selenium、Django、Flask、ZopeTestBrowser),可无缝切换至原始 Selenium 接口,兼顾易用性与灵活性。
主要特点:
为什么使用Splinter?
该项目有两个主要目标:
Github地址:
https://github.com/cobrateam/splinter
3、安装
基本要求:
Splinter 官方支持 Python 3.8 及以上版本。
1、安装Splinter
(1)pip安装
安装最新版本,请在终端中运行以下命令:
pip install splinter
(2)从源代码安装
Splinter 的源代码托管在 GitHub 上。你可以使用 git 克隆该代码仓库,并进行安装:
git clone git://github.com/cobrateam/splinter.git
cd splinter
pip install .
2、安装驱动程序
使用额外参数进行安装。
当通过pip安装Splinter时,可以提供额外的参数。这些参数将自动安装所需驱动程序的最新版本。
以下是有效的额外参数
示例:
要自动安装包含selenium的Splinter:
pip install splinter[selenium]
4、快速上手
本例为购物网站购买商品:登录购物网站,选中商品并添加到购物车里,填写个人信息后提交订单。
首先, 导入 Browser 类并创建一个实例;
browser.visit 方法可访问任意网站;
browser.find_by_name/id/xpath... 进行元素定位;
.fill('xxx') 输入框输入内容;
.click() 点击操作;
browser.is_text_present('xxx') 检查页面上是否有输入的文本信息;
browser.screenshot('xxx.png') 截取当前屏幕截图;
browser.quit 关闭浏览器。
代码如下:
from splinter import Browser
browser = Browser('firefox')
browser.visit('https://www.saucedemo.com/')
browser.find_by_name('user-name').fill('standard_user')
browser.find_by_name('password').fill('secret_sauce')
browser.find_by_id('login-button').click()
browser.find_by_id('add-to-cart-sauce-labs-backpack').click()
browser.find_by_xpath('//*[@id="shopping_cart_container"]/a').click()
browser.find_by_id('checkout').click()
browser.find_by_name('firstName').fill('Meng')
browser.find_by_name('lastName').fill('Test')
browser.find_by_name('postalCode').fill('001')
browser.find_by_id('continue').click()
browser.find_by_id('finish').click()
if browser.is_text_present('Thank you for your order!'):
print("完成订单成功!")
else:
print("完成订单失败!")
screenshot_path = browser.screenshot('D:\TestDemo\your_screenshot.png', full=True)
browser.quit()
运行结束后,执行成功,日志打印:完成订单成功!
屏幕截图保存下来的图片,也可以看到订单已完成。
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有