当前位置: 首页 > news >正文

测试开发之自动化篇 —— 使用Selenium IDE录制脚本!

今天,我们开始介绍基于开源Selenium工具的Web网站自动化测试。

Selenium包含了3大组件,分别为:
1. Selenium IDE
基于Chrome和Firefox扩展的集成开发环境,可以录制、回放和导出不同语言的测试脚本。

2. WebDriver
包括一组为不同语言、浏览器提供的类库和驱动,用编程的方式来识别和操作网页及其元素。

3. Selenium Grid
提供主从架构的、分布式测试执行环境,由Hub(主控)和Node(节点)组成。

老版本的Selenium还包括一个已经被废弃的RC组件,它的原理是通过代理的方式向被测试的网页中注入JavaScript代码,完成对页面的操控。当前,RC已被WebDriver组件所替代。大家如在网上看到于此有关的文章,可直接忽略。

使用Selenium IDE录制自动化测试脚本

  1. 首先安装Chrome浏览器,然后从这里安装Selenium IDE插件;
  2. 点击浏览器右上角的扩展图标(类似1个拼图的符号),选择打开Selenium IDE;
  3. 在弹出的窗口中,点击Record a new test in a new project菜单项;
  4. 输入项目名称(如project1),点击确定;
  5. 在BASE URL文本框中,输入百度网址https://www.baidu.com
  6. 点击Start Recording,开始录制脚本;
  7. 在弹出的百度网站窗口中,完成以下操作:
    7.1. 在关键字文本框中,输入禅道
    7.2. 点击搜索按钮;
    7.3. 在搜索结果中,点击第1条的标题。
  8. 切换到录制工具窗口,点击右上角红色图标,停止录制;
  9. 输入脚本名称(如script1),进入以下编辑器窗口:

    image.png

  10. 点击脚本名称(如script1)右侧的更多图标(为纵向排列的3个点),选择Export菜单项;
  11. 此处我们以内嵌Java注释的方式,对脚本做简单的介绍。生成的脚本如下,已忽略其中用于等待窗口的waitForWindow方法和调用。

// 导入Java类库,如selenium、junit等import org.openqa.selenium.WebDriver;// 生成的JUnit测试类public class Test1Test {// 类级别的私有变量private WebDriver driver;private Map<String, Object> vars;JavascriptExecutor js;// 使用JUnit的@Before注解,定义在测试执行前,需执行的初始化行为。@Beforepublic void setUp() {// 初始化WebDriver对象driver = new ChromeDriver();// 初始化JS执行器对象,用于在浏览器中执行Javascript代码。js = (JavascriptExecutor) driver;}// 使用JUnit的@After注解,定义在测试完成后,需执行的清理动作。@Afterpublic void tearDown() {// 退出并清理WebDriver对象driver.quit();}// 使用JUnit的@Test注解,标注此方法为一个测试方法。@Testpublic void test1() {// 打开百度网站首页driver.get("https://www.baidu.com/");// 设置浏览器窗口大小为1440x875driver.manage().window().setSize(new Dimension(1440, 875));// 找到id为kw的(文本框)控件,在里面输入“禅道”。driver.findElement(By.id("kw")).sendKeys("禅道");// 找到id为su的(按钮)控件,并点击。driver.findElement(By.id("su")).click();// 找到指定内容的链接,并点击。driver.findElement(By.ByPartialLinkText("开源项目管理软件")).click();}}

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

测试开发之自动化篇 —— 使用Selenium IDE录制脚本!

今天&#xff0c;我们开始介绍基于开源Selenium工具的Web网站自动化测试。 Selenium包含了3大组件&#xff0c;分别为&#xff1a;1. Selenium IDE 基于Chrome和Firefox扩展的集成开发环境&#xff0c;可以录制、回放和导出不同语言的测试脚本。 2. WebDriver 包括一组为不同…...

Django 外键关联数据

在设计数据库的时候&#xff0c;是得需要通过外键的形式将各个表进行连接。 原先的表是这样的 要想更改成这样&#xff1a; 下面是操作步骤&#xff1a; 有两张表是关联的 # 在 models.py 里创建class Department(models.Model):"""部门表""&quo…...

开源与新质生产力

在这个信息技术迅猛发展的时代&#xff0c;全球范围内的产业都在经历着深刻的变革。在这样的背景下&#xff0c;“新质生产力”的概念引起了广泛的讨论。无论是已经成为或正努力转型成为新质生产力的企业&#xff0c;都在寻求新的增长动力和竞争优势。作为一名长期从事开源领域…...

如何将 Windows图片查看器的背景颜色改成浅色(灰白色)?

现在大家基本都在使用Win10系统&#xff0c;我们在双击查看图片时&#xff0c;系统默认使用系统自带的图片&#xff08;照片&#xff09;查看器去打开图片。图片查看器的背景色默认是黑色的&#xff0c;如下所示&#xff1a;&#xff08;因为大家可能会遇到同样的问题&#xff…...

k8s-pod参数详解

目录 概述创建Pod编写一个简单的Pod添加常用参数为Pod的容器分配资源网络相关Pod健康检查启动探针存活探针就绪探针 作用整个Pod参数配置创建docker-registry 卷挂载 结束 概述 k8s中的pod参数详解。官方文档   版本 k8s 1.27.x 、busybox:stable-musl、nginx:stable-alpine3…...

一些计算机网络面试题

TCP建立连接和关闭连接的流程&#xff1f;每个流程的环节&#xff1f; TCP是在传输层的协议&#xff0c;建立的是可靠传输 TCP在传输数据前建立连接是采用三次握手&#xff0c;关闭连接是四次挥手 三次握手&#xff1a;因为目前网络通讯是全双工的&#xff0c;那我假设浏览器…...

transformer - 注意力机制

Transformer 的注意力机制 Transformer 是一种用于自然语言处理任务的模型架构&#xff0c;依赖于注意力机制来实现高效的序列建模。注意力机制允许模型在处理一个位置的表示时&#xff0c;考虑输入序列中所有其他位置的信息&#xff0c;而不仅仅是前面的几个位置。这种机制能…...

三端植物大战僵尸杂交版来了

Hi&#xff0c;好久不见&#xff0c;最近植物大战僵尸杂交版蛮火的 那今天苏音整理给大家三端的植物大战僵尸杂交版包括【苹果端、电脑端、安卓端】 想要下载的直接划到最下方即可下载。 植物大战僵尸&#xff0c;作为一款古老的单机游戏&#xff0c;近期随着B站一位UP主潜艇…...

np.hstack()和np.vstack()函数解释

np.hstack()和np.vstack()函数解释 文章目录 1&#xff0c;np.hstack()1.1&#xff0c;代码1.2&#xff0c;结果 2&#xff0c;np.vstack()2.1&#xff0c;代码2.2&#xff0c;结果 3&#xff0c;np.hstack()和np.vstack()3.1&#xff0c;代码3.2&#xff0c;结果 1&#xff0c…...

【Linux】进程5——进程优先级

1.进程优先级 1.1.什么是进程优先级 cpu资源分配的先后顺序&#xff0c;就是指进程的优先权&#xff08;priority&#xff09;。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用&#xff0c;可以改善系统性能。还可以把进程运行到指定的CPU上&#x…...

CNN简介与实现

CNN简介与实现 导语整体结构卷积层卷积填充步幅三维卷积立体化批处理 实现 池化层特点实现 CNN实现可视化总结参考文献 导语 CNN全称卷积神经网络&#xff0c;可谓声名远扬&#xff0c;被用于生活中的各个领域&#xff0c;也是最好理解的神经网络结构之一。 整体结构 相较于…...

【AI大模型】Transformers大模型库(五):AutoModel、Model Head及查看模型结构

目录​​​​​​​ 一、引言 二、自动模型类&#xff08;AutoModel&#xff09; 2.1 概述 2.2 Model Head&#xff08;模型头&#xff09; 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预…...

Hadoop yixing(移行),新增表字段,删除表字段,修改存储格式

Hadoop yixing(移行)&#xff0c;新增表字段&#xff0c;删除表字段&#xff0c;修改存储格式 一、hadoop中修改存储格式&#xff0c;比如从 textfile 转化为 orc 格式&#xff0c;表中的数据的组织形式要重新改变&#xff0c;就要将重新创建新格式的表将原来的数据按照新的格…...

使用汇编和proteus实现仿真数码管显示电路

proteus介绍&#xff1a; proteus是一个十分便捷的用于电路仿真的软件&#xff0c;可以用于实现电路的设计、仿真、调试等。并且可以在对应的代码编辑区域&#xff0c;使用代码实现电路功能的仿真。 汇编语言介绍&#xff1a; 百度百科介绍如下&#xff1a; 汇编语言是培养…...

【Unity】官方文档学习-光照系统

目录 1 前言 2 光照介绍 2.1 直接光与间接光 2.2 实时光照与烘焙光照 2.3 全局光照 3 光源 3.1 Directional Light 3.1.1 Color 3.1.2 Mode 3.1.3 Intensity 3.1.4 Indirect Multiplier 3.1.5 Shadow Type 3.1.6 Baked Shadow Angle 3.1.7 Realtime Shadows 3.1…...

1731. 每位经理的下属员工数量

1731. 每位经理的下属员工数量 题目链接&#xff1a;1731. 每位经理的下属员工数量 代码如下&#xff1a; # Write your MySQL query statement below select a.employee_id as employee_id,a.name as name,count(b.employee_id) as reports_count,round(avg(b.age),0) as av…...

特征筛选LASSO回归封装好的代码、数据集和结果

Gitee仓库地址&#xff1a;特征筛选LASSO回归封装好的代码、数据集和结果 README LassoFeatureSelector_main 这个是主函数文件&#xff0c;在实例化LassoFeatureSelector类时&#xff0c;需要传入下面这些参数&#xff1a; input_train_data_path&#xff1a;输入训练集的路…...

Autosar 通讯栈配置-手动配置PDU及Signal-基于ETAS软件

文章目录 前言System配置ISignalSystem SignalPduFrameISignal到System Signal的mapSystem Signal到Pdu的mapPdu到Frame的mapSignal配置Can配置CanHwFilterEcuC配置PduR配置CanIf配置CanIfInitCfgCanIfRxPduCfgCom配置ComIPduComISignalSWC配置Data mappingRTE接口Com配置补充总…...

Web前端工资调整:深入剖析与全面解读

Web前端工资调整&#xff1a;深入剖析与全面解读 在快速发展的互联网行业中&#xff0c;Web前端技术日新月异&#xff0c;而与之紧密相关的工资调整也成为了业内热议的话题。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;深入剖析Web前端工资调整的原因、趋势、…...

cesium已知两个点 写一个简单具有动画尾迹效果的抛物线

// 定义起点和终点的经纬度和高度 var start { longitude: 111.09683723811149, latitude: 38.92112250636146, elevation: 603.5831692856873 }; var end { longitude: 111.09769465526689, latitude: 38.92815375977821, elevation: 627.0132157062261 }; // 生成更多的中…...

uniapp圆环进度条组件实战:从零到一打造个性化数据展示

Uniapp圆环进度条组件实战&#xff1a;从零到一打造个性化数据展示 在移动应用开发中&#xff0c;数据可视化是提升用户体验的关键因素之一。圆环进度条作为一种直观的数据展示方式&#xff0c;广泛应用于健身追踪、学习进度、任务完成度等场景。Uniapp作为跨平台开发框架&…...

基于pso-LSTM的锂电池SOH健康状态预测模型(NASA数据集)B0005、B0006、B...

基于pso-LSTM的锂电池SOH健康状态预测模型&#xff08;NASA数据集&#xff09;B0005、B0006、B0007、B0008四个电池数据集。 在数据预处理阶段&#xff0c;用户可以自行完成SOH&#xff08;State of Health&#xff09;的计算&#xff0c;然后通过pso-LSTM神经网络进行预测。 该…...

【悬疑言情小说推荐】《血语玫瑰》

​​​​​​《血语玫瑰》国际标准书号&#xff1a;ISBN&#xff1a;978-986-6364-30-3 作者:追月逐花 本书地址&#xff1a;http://e.dangdang.com/products/1901197341.html 每个女孩都期待男友年轻英俊、家境优渥、学识出众&#xff0c;而 “魔鬼” 恰好符合所有条件&…...

OpenClaw资源监控方案:Qwen3-32B镜像驱动服务器健康巡检

OpenClaw资源监控方案&#xff1a;Qwen3-32B镜像驱动服务器健康巡检 1. 为什么需要AI驱动的资源监控&#xff1f; 去年我的个人开发服务器连续宕机三次&#xff0c;每次都是因为磁盘写满导致服务崩溃。传统监控工具虽然能发出警报&#xff0c;但往往在问题发生后才会触发&…...

为什么你的unipush消息收不到?详解个推通道状态检测与事件触发逻辑

为什么你的UniPush消息收不到&#xff1f;深度解析推送失效的7大关键因素 在移动应用开发中&#xff0c;消息推送是维系用户活跃度的核心功能之一。许多开发者在使用UniPush服务时&#xff0c;经常会遇到消息未能如期送达的困扰。本文将系统性地剖析消息推送失效的底层逻辑&…...

vLLM-v0.17.1实操手册:Prometheus监控指标接入与告警配置

vLLM-v0.17.1实操手册&#xff1a;Prometheus监控指标接入与告警配置 1. vLLM框架简介 vLLM是一个专为大型语言模型(LLM)设计的高性能推理和服务库&#xff0c;由加州大学伯克利分校的天空计算实验室(Sky Computing Lab)开发&#xff0c;现已发展为社区驱动的开源项目。这个框…...

Charticulator:颠覆式图表构建引擎如何让数据工作者实现零代码可视化创新

Charticulator&#xff1a;颠覆式图表构建引擎如何让数据工作者实现零代码可视化创新 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 数据可视化领域长期面临着模…...

如何高效迁移至WeFriends:微信好友关系管理工具全新升级指南

如何高效迁移至WeFriends&#xff1a;微信好友关系管理工具全新升级指南 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFrien…...

GitHub Desktop中文汉化工具:让Git操作变得像聊天一样简单

GitHub Desktop中文汉化工具&#xff1a;让Git操作变得像聊天一样简单 【免费下载链接】GitHubDesktop2Chinese GithubDesktop语言本地化(汉化)工具 项目地址: https://gitcode.com/gh_mirrors/gi/GitHubDesktop2Chinese 还在为GitHub Desktop满屏的英文而头疼吗&#x…...

【Mojo跨语言互操作权威配置白皮书】:实测TensorFlow/NumPy/Pandas三方库零报错接入方案

第一章&#xff1a;Mojo跨语言互操作的核心原理与架构定位Mojo并非传统意义上的独立运行时语言&#xff0c;而是以“Python超集”为设计原点、深度嵌入LLVM生态的系统级编程语言。其跨语言互操作能力不依赖FFI桥接层或胶水代码&#xff0c;而是通过统一的中间表示&#xff08;M…...