百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

SeleniumBase的奇技淫巧:制作产品演示Demo

ccwgpt 2024-10-10 04:53 29 浏览 0 评论

Selenium作为目前最为流行的开源Web自动化测试框架,已经发展了20年。功能强大,它的webdriver协议也已经成为自动化测试领域的一个事实标准。而基于Selenium这个框架,又诞生出很多基于它封装的拓展框架。比如本文我们介绍的SeleniumBase

SeleniumBase是什么?

SeleniumBase是一个基于Selenium框架基础上,进一步进行了脚本增强的Python库。 在Selenium原有的功能基础上,简化了自动化脚本的编写和调用方式,并且和pytest框架进行了深度集成。最主要的是它提供了多种不同的脚本模式, 包括脚本录制、运行慢放、运行中Debug,以及我们本文要介绍的演示功能。

虽然SeleniumBase十分强大,但底层自动化的实现逻辑上依然沿用Selenium的主要特性。所以这里我们不特别介绍SeleniumBase在自动化脚本编写上的封装。但这个库有一个非常棒的地方是它通过JS的注入让自动化运行过程更加直观和便于展示。

比如我们下面看到的演示制作

通过自动化脚本完成演示的优点

作为测试工程师,特别是随着现在敏捷研发的流行,迭代结束通常都有个迭代回顾和演示环节。而作为测试工程师,很多迭代中的功能演示这个工作是由我们来完成的。

包括有时在向客户、领导介绍产品功能时,通过实际的产品操作来说明功能也必不可少。

但实际操作中,如果能提前将一些需要说明的重点,在自动化测试执行的同时展示出来,效果就非常好,并且还能避免一些临时的误操作。

所以SeleniumBase的这个功能就能在这里发挥优势了

用SeleniumBase制作产品演示流程

先看一下用SeleniumBase完成的我的博客网站的中一个开源更新信息的演示

其实它的原理也比较简单,就是通过它封装的BaseCase类,在对应的操作步骤执行同时,注入封装好的Js来突出执行的元素,给出一些指引提示。

这里对应的基类中的create_introjs_tour()方法,创建演示导引。这里它还有不同的js主题选择,非常强大。

然后就是add_tour_step()添加步骤,play_tour()执行步骤.

对应的演示生成代码:

from seleniumbase import BaseCase
BaseCase.main(__name__, __file__)


class MyTourClass(BaseCase):
def test_blog_tour(self):
self.open("https://chengxiaqiucao.github.io/")
self.wait_for_element('[class="site-logo"]')
self.set_introjs_colors("#f34565", "#c55409")
self.create_introjs_tour() #
self.add_tour_step("Selenium Base制作Demo演示", title="城下秋草的Demo")
self.add_tour_step("查看热门开源项目", '#main-menu > li:nth-child(6) > a')
self.play_tour()
self.highlight_click('#main-menu > li:nth-child(6) > a')
self.wait_for_element('[class="article-title"]')

self.create_introjs_tour()
self.add_tour_step("选择Selenium项目查看", '#seleniumpageselenium-10 > a')
self.play_tour()
self.highlight_click('#seleniumpageselenium-10 > a')
self.ad_block()
self.wait_for_element('[class="section-title"]')

self.create_introjs_tour()
self.add_tour_step("返回主页", '[class="site-logo"]')
self.play_tour()
self.highlight_click('[class="site-logo"]')
self.wait_for_element('[title="搜索"]')

self.create_introjs_tour()
self.add_tour_step("3秒停顿后继续...")
self.add_tour_step("开始下一个演示:")
self.play_tour(interval=3)


而实际演示的注入Js,我们还可以通过self.export_tour这个语句导出对应的js脚本,便于后续直接使用。

类似的还有他的Demo模式,其实和演示导引模式比较类似,只是更多时自动把自动化执行步骤放慢并高亮,突出验证点。

以上就是关于SeleniumBase库这个帅气功能的分享~

相关推荐

软件开发接口通信总结(软件开发 接口)

常用的接口通信开发:1.http协议通信:主要通过post,get方式提交,通信较耗时,至少几百毫秒,但是如果采用线程池做,在初次建立连接时,耗时,建立连接后,通信挺快的,十几毫秒可以搞定。httpC...

《哪吒2》中物理知识很多,但无量仙翁喝尿的解释又完美又搞笑~

随着《哪吒2》票房的不断攀升,导演饺子背后的故事不断被挖掘大家发现,学历高的导演就是不一样,高考600多分的导演拍出来的作品里面全是知识点啊,尤其是包含了很多物理知识点。大哪吒的头发为什么是向上的?无...

用毕加索风格打造动画版“头号玩家”

提香·韦切利奥的《乌尔比诺的维纳斯》。桑德罗·波提切利的《维纳斯的诞生》。毕加索的《手里捧着书的女子》。安迪·沃霍尔的《双面猫王》。凡·高的《邮差约瑟鲁林》。马奈的《奥林匹亚》。巴齐耶的《雷诺阿画像》...

《章鱼噼的原罪》开播即好评 诡谲美学何时能突破电视框架?

由「タイザン5」创作的短篇漫画《章鱼噼的原罪》,自2021年底在少年Jump+连载以来,仅用上下两集单行本的体量,便以「幸福表象下的惊悚内核」引爆话题。作品中扭曲的友情叙事与冲击性画面形成强烈反差,单...

妖猫睡猫招财猫,都是怎么“化人”的?

陆颖瑶江户时期的猫常常被当作浮世绘的题材,最初是在美人画的角落里作为美人的可爱宠物而登场,后来被画家拟人化,成为役者画、玩具画等的创作对象,澎湃新闻获悉,日本大阪历史博物馆即将举办“国芳、广重、国贞...

俄媒:俄空投“章鱼”反坦克炮测试坚固性

参考消息网9月15日报道据俄罗斯卫星社莫斯科9月14日报道,俄罗斯国家技术集团公司向卫星社表示,从塔台上投落现代化自行反坦克炮“章鱼”-SDM1,以测试其在伞投期间承受过载的能力。俄罗斯国家技术集团公...

新大众文艺生产模式下的网络热梗(大众文艺是scd吗)

作者:郑绩当二次元向元宇宙进化,ACGN(动画、漫画、游戏、小说)仅成为虚拟空间的某个维度,以“用户”为名的主体开创出新大众文艺生产模式。孕诞的过程如此丝滑,稍不留神,我们已迷走于强烈复杂的数字现实...

安徽业主私人定制188平农村合院,因地制宜建出优质别墅!

理想的生活,不仅要有一座院子、一家人、四季春秋,还要有闲适的时间与知己往来。人生得意须尽欢,一席阔厅,既是茶余饭后阖家相聚的生活主场,也是主人尊崇品味的直观呈现。下面这套农村宅院,一入家门、二赏庭院、...

用数学融智学人力资源模型的核心架构:建立可量化的理论框架

用数学融智学人力资源模型的核心架构建立可量化的理论框架一、潜能开发三阶模型1.潜能探测函数其中:2.认知锻造方程采用1+3倍增算子:其中:二、九五智尊分类模型人才特征空间映射训练优化目标三、实战...

优化作文结构:三种实用框架解析(作文框架梳理)

优化作文结构:三种实用框架解析一、案例启示:结构优化的重要性子涵写作初用“总分总”结构(如诚信主题),但中间部分未细分导致混乱。优化后:1.引论:以商鞅立木为信案例引入,总述诚信为立身之本。2....

农村自建房新宠!半框架结构凭啥这么火?内行人揭开3个扎心真相

最近回老家发现一个怪现象:几乎家家盖新房都爱用"半框架结构"。隔壁王叔家刚完工的二层小楼,外墙红砖还没勾缝,里面的水泥柱子已经支棱起来了。这玩意儿到底有啥魔力?我蹲工地三天,问了十几个...

Apache Log4j高危漏洞,燃爆大厂、燃烧Java开源框架

8分钟阅读.一、背景本周对IT界的Java工程师来说,应该都有一个比较难忘的夜晚。夜半迷迷糊糊接到安全部的电话要求立即、马上升级Log4j的版本,修复安全漏洞。What?来不及…就投入了战斗。尤其大厂...

我的公司信息(我的公司信息英语作文)

软件工程师(平台开发方向)面议福建->厦门本科不限全职职位诱惑:精英团队、福利多样、假期丰富,你会是吉比特的有缘人吗职位描述岗位职责:1、负责游戏平台的功能开发任务;2、搭建游戏...

深入了解 Java Spring:从基础到安全防范

在Java开发的广阔领域中,Spring框架无疑是一颗璀璨的明星。它经历了从传统企业级开发到现代云原生、响应式编程的演变,每个大版本都在配置简化、性能提升、技术集成等方面持续创新。今天,就让我们...

【紧急预警】关于 Apache Log4j 2 任意代码执行漏洞的高危风险通告

概述我中心多家网络威胁数据联盟成员单位近日监测到ApacheLog4j2存在任意代码执行漏洞,经过分析,由于ApacheLog4j2新增的lookup功能未对输入进行严格的判断,存在递归...

取消回复欢迎 发表评论: