Selenium IDE录制脚本

文章目录

  • 1.环境搭建
    • 1.1 Chrome浏览器安装
    • 1.2 Chrome驱动安装
    • 1.3 Selenium IDE插件的安装
  • 2.Selenium IDE插件介绍
    • 2.1 初始化界面
    • 2.2 菜单栏
    • 2.3 工具栏
    • 2.4 地址栏
    • 2.5 测试用例窗口
    • 2.6 测试脚本窗口
    • 2.7 日志和引用窗口
  • 3.元素定位
    • 3.1 通过id进行元素定位
    • 3.2 通过name进行元素定位
    • 3.3 通过class name进行元素定位
    • 3.4 通过tag name进行元素定位
    • 3.5 通过css进行元素定位
    • 3.6 通过link_text进行元素定位
    • 3.7 通过partial_link_text进行元素定位
    • 3.8 通过xpath进行元素定位
      • 3.8.1 xpath+绝对路径
      • 3.8.2 xpath+相对路径+索引定位
      • 3.8.3 xpath+相对路径+属性定位
      • 3.8.4 xpath+相对路径+通配符定位
      • 3.8.5 xpath+相对路径+部分属性值定位
      • 3.8.6 xpath+相对路径+文本定位
  • 4.脚本优化
  • 5.查看测试报告

1.环境搭建

1.1 Chrome浏览器安装

1.版本选择:98.0.4758.102_chrome64_stable_windows_installer.exe
2.如果Selenium IDE插件安装失败,可能是由于插件的版本和浏览器版本不兼容导致的,可以去网上
下载对应的Selenium IDE插件,也可以卸载原有的 Chrome 浏览器,再进行双击安装

1.2 Chrome驱动安装

1.从外网下载对应的驱动版本:chromedriver.exe
2.拷贝到 Chrome 目录下:
2.1 选中 Chrome 桌面快捷方式,右击,选择属性,查看目标位置
2.2 目录访问 Chrome 目录,把驱动文件拷贝到对应目录下
2.3 把 Chrome 目录,设置为环境变量
3.把驱动文件,拷贝到对应的 Python 目录下

在这里插入图片描述
在这里插入图片描述

1.3 Selenium IDE插件的安装

1.打开 Chrome 浏览器扩展程序的,开发者模式
2.把下载好的对应的 Selenium IDE 插件(mooikfkahbdckldjjndioackbalphokd-3.17.2-
Crx4Chrome.com.crx)拖拽到此页面即可
3.点击添加扩展程序

2.Selenium IDE插件介绍

Selenium IDE 是 Chrome 和 FireFox 和 Edge 浏览器中的插件,Selenium IDE 结合浏览
器提供脚本录制、脚本回放、脚本编辑、元素定位等功能,使用 Selenium IDE 可以将录制的脚本生
成相应的单元测试框架的自动化测试脚本, 录制脚本支持导出 Python pytest、Java JUnit、
NUnit等格式
Selenium IDE 分为不同的组件, 每个组件都有自己的特性和功能。
组件包括:
1.菜单栏
2.工具栏
3.地址栏
4.测试用例窗口
5.测试脚本窗口
6.日志和引用窗口

2.1 初始化界面

在这里插入图片描述

2.2 菜单栏

1.菜单栏位于 Selenium IDE 界面的最顶部
2.项目名:用于重命名整个项目
3.打开项目:用于从个人驱动器加载任何现有项目
4.保存项目:用于保存当前正在处理的整个项目

2.3 工具栏

1.执行所有用例:用于加载具有多个测试用例的测试套件时运行整个测试套件
2.执行当前所选用例:用于运行当前选定的测试,只加载一个测试用例,运行测试,此按钮和运行所有
用例按钮,具有相同的效果
3.Debug模式:用于进入步骤,通过测试用例一次运行一个命令,用于调试测试用例
4.调节用例执行速度:用于控制测试用例的执行速度

2.4 地址栏

此模块提供一个下拉菜单,可以记住基本 URL 的所有先前值,简单来书,
基本 URL 地址栏会记录以前访问过的网站,以便以后导航变得容易

2.5 测试用例窗口

创建测试用例
重命名
复制
删除
导出

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.6 测试脚本窗口

Command:可以将命令视为在浏览器元素上执行的实际操作,例如:如果要打开一个新的URL,该命
令是:open,如果单机网页上的链接或者按钮, 则该命令为:click
Target:指定必须在其上执行操作的web元素以及locator属性
Value:可选字段,可在需要发送一些实际参数时使用,例如:在文本框中输入用户名或者密码
Command:
open:使用URL打开一个页面
click:执行单击操作,并可选地等待新页面加载
type:输入内容
sendKeys:键盘输入
verifyTitle/assertTitle:检查当前页面标题title,区别:(使用断言还是验证 Assertion
or Verification?)
verifyTitle:用于检查当前页面标题是否等于期望值,当前步骤失败,脚本会继续执行
assertTitle:用于检查当前页面标题是否等于期望值,如果不满足,当前脚本失败,脚本不会继续执
行
verifyTextPresent:验证指定文本是否存在
verifyElementPresent:验证指定的UI元素存在,当必须测试特定UI元素的存在,而不是其内容
时,请使用此命令,此验证不检查文件,只检查HTML标记,一个常用的方法就是检查图像是否存在
verifText:验证指定文本及其相应的HTML标记在页面上,必须测试文本和它的UI元素
verifyTable:验证一个表格的预期内容

在这里插入图片描述

2.7 日志和引用窗口

在这里插入图片描述

3.元素定位

3.1 通过id进行元素定位

driver.find_element(By.ID, 'kw').send_keys('Selenium')

3.2 通过name进行元素定位

driver.find_element(By.NAME, 'wd').send_keys('Selenium')

3.3 通过class name进行元素定位

driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('Selenium')

3.4 通过tag name进行元素定位

driver.find_element(By.TAG_NAME, 'input').send_keys('Selenium')

3.5 通过css进行元素定位

#表示id属性:#kw;.表示class属性:.s_ipt
driver.find_element(By.CSS_SELECTOR, '#kw').send_keys('Selenium')

3.6 通过link_text进行元素定位

# 超链接
driver.find_element(By.LINK_TEXT, '新闻').send_keys('Selenium')

3.7 通过partial_link_text进行元素定位

# 超链接部分内容
driver.find_element(By.PARTIAL_LINK_TEXT, '闻').send_keys('Selenium')

3.8 通过xpath进行元素定位

3.8.1 xpath+绝对路径

driver.find_element(By.XPATH, '/html/body/div/div/div/div/form/div[1]/div/div/div[1]/div/input').send_keys('Selenium')

3.8.2 xpath+相对路径+索引定位

driver.find_element(By.XPATH, '//form/div[1]/div[1]/div[1]/div[1]/div[1]/input').send_keys('Selenium')

3.8.3 xpath+相对路径+属性定位

driver.find_element(By.XPATH, '//input[@placeholder="用户名"]').send_keys('Selenium')

3.8.4 xpath+相对路径+通配符定位

driver.find_element(By.XPATH, '//input[@*="用户名"]').send_keys('Selenium')

3.8.5 xpath+相对路径+部分属性值定位

# 以开头
driver.find_element(By.XPATH, '//*[starts-with(@placeholder, "用")]').send_keys('Selenium')
# 以结尾
driver.find_element(By.XPATH, '//*[contains(@placeholder, "名")]').send_keys('Selenium')
# 包含
driver.find_element(By.XPATH, '//*[substring(@placeholder, 2)="户名"]').send_keys('Selenium')

3.8.6 xpath+相对路径+文本定位

driver.find_element(By.XPATH, '//span[text()="登 录"]').send_keys('Selenium')

4.脚本优化

# 类方法优化
def setup_method(self, method):self.driver = webdriver.Chrome()self.vars = {}
# 优化为
def setup_method(self, method):# self.driver = webdriver.Chrome()# Chrome添加参数browser_options = webdriver.ChromeOptions()# 解决SSL证书问题browser_options.add_argument("--ignore-certificate-errors")# 解决控制台输出报错信息browser_options.add_experimental_option("excludeSwitches", ["enablelogging"])# 去掉 chrome正受到自动测试软件的控制提示browser_options.add_experimental_option("excludeSwitches", ["enableautomation"])self.driver = webdriver.Chrome(options=browser_options)# 智能等待时长self.driver.implicitly_wait(20)self.vars = {}# 添加入口函数,可以单独用例在PyCharm中执行if __name__ == '__main__':pytest.main(["-s", "-v", "test_test001login.py"])

5.查看测试报告

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/153469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笔记本散热怎么做?学会4招,快速散热!

“不知道为什么,我的笔记本总是用着用着就会发热。有时候还会非常的烫。这是为什么呢?应该怎么解决笔记本散热的问题呢?” 随着笔记本性能的提高,散热变得尤为重要。合理的散热不仅可以保持笔记本的稳定性能,还能延长其…

React Native项目接入Sentry指南

本文主要介绍React Native项目接入Sentry流程,以及遇到的一些注意点,方便大家去解决和处理,如果在接入过程中,遇到任何问题可以在评论区留言,我将根据自己的接入经验给出一些解决方案和建议。 1, 安装sentry sdk 我们可以在项目中执行如下命令来安装sentry,命令如下: …

端口探测技术总结

基于TCP的探测 关于三次握手(Three-way Handshake) 向处于开放或关闭状态的端口发送不同字段设置的探测请求包时,被探测端口的回应如下表所示: closed portopen portSYN 包丢弃并返回一个RST包回复SYN或ACKSYN关闭的包丢弃不回复丢弃不回复RST包丢弃不…

对一个Series序列内的元素逐个扩展同一聚合操作一个序列中共有m个元素,从指定的第n个元素开始,对前i元素进行聚合计算Series.expanding()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 一个序列中共有m个元素 从指定的第n个元素开始 对前i元素进行聚合计算 其中&#xff1a;n < i < m 聚合计算&#xff1a;求最大、平均值等 Series.expanding(n).max() Series.expanding(…

什么是加工制造业ERP系统?加工制造业ERP软件有哪些作用

化工、电子、五金、来料加工等不同性质的加工企业有差异化的业务特点&#xff0c;传统的管理模式难以解决多仓库、多工厂、多门店、多渠道信息统一和实时共享等问题。 另外如何实时掌握车间产能、科学制定生产计划、多门店数据统一和实时同步等问题&#xff0c;是很多加工制造…

C语言编程陷阱 (九)

陷阱41&#xff1a;不要使用内存下标越界 C语言中&#xff0c;集群的下标可能是从0开始的&#xff0c;比如集群的长度是5&#xff0c;那么它的下标范围是0到4&#xff0c;如果我们使用一个超出范围的下标来访问集群&#xff0c;会导致集群下标越界。 有时&#xff0c;我们会错误…

【Linux】基本指令

Linux现在已经是绕不开的操作系统&#xff0c;其开源导致的稳定性&#xff0c;安全性等方面遥遥领先。今天我们开始学习Linux操作系统的基本指令 目录 lspwdcdtouchmkdirrmdir && rmmancp ls 语法&#xff1a; ls [选项][目录或文件] 功能&#xff1a;对于目录&#xf…

NOI1995:石子合并

题目链接 [NOI1995] 石子合并 题目描述 在一个圆形操场的四周摆放 N N N 堆石子&#xff0c;现要将石子有次序地合并成一堆&#xff0c;规定每次只能选相邻的 2 2 2 堆合并成新的一堆&#xff0c;并将新的一堆的石子数&#xff0c;记为该次合并的得分。 试设计出一个算法…

在回调之间共享数据

可以在 App 中为 UI 组件编写回调函数&#xff0c;以指定用户与其交互时的行为方式。 在具有多个相互依赖的 UI 组件的 App 中&#xff0c;回调函数通常必须访问主 App 函数中定义的数据&#xff0c;或与其他回调函数共享数据。例如&#xff0c;如果创建一个具有列表框的 App&a…

关于WhatsApp群发营销价值、类型、优劣势……这里一次性讲清楚

01 社交销售互动&#xff1a;全球营销新趋势 当下&#xff0c;全球品牌的营销销售互动都步入了社交销售新时代&#xff0c;相比原来任何一种形式的互动沟通来说&#xff0c;其沟通效率、体验、效果都是无与伦比的。 企业与销售的互动&#xff0c;与通讯信息技术发展息息相关。…

python数据结构与算法-08_字典

字典 dict 上一章我们介绍了哈希表&#xff0c;其实 python 内置的 dict 就是用哈希表实现的&#xff0c;所以这一章实现 dict 就非常简单了。 当然 cpython 使用的是 c 语言实现的&#xff0c;远比我们写的复杂得多 (cpython/Objects/dictobject.c)。 上一章我们用 python 自…

电容搞搞”振“,PDN有帮衬

高速先生成员--姜杰 聊电容&#xff0c;不能只聊电容&#xff0c;还要聊电阻和电感。看似很简单&#xff0c;其实&#xff0c;一点都不难。 因为去耦电容的模型基本都可以用下面三种元素的简单组合来表示。 理想电容C的阻抗是随频率的增加而逐渐减小的一条斜线&#xff0c;实际…

脱离form表单校验input(校验单个input输入框)提交时边框变红

把需要自定义校验的数据放在一个对象中&#xff0c;方便以后多个字段校验 customVerifyInps:{communityInp2:"",asPathInp:"",}, 在输入框中绑定id <el-inputid"communityInp2"placeholder""v-model"customVerifyInps.commu…

基于STM32设计的(无人)智慧超市-2023改进版

改进的内容: 增加了一个智慧超市登录入口,整个上位机只有一个APP文件。 可以选择顾客或者管理员的身份进去。优化了界面的显示。 一、项目背景 智慧超市是一种新型的零售形式,它将人工智能、物联网、云计算等技术应用到超市运营中,为消费者提供更加便捷、快捷、个性化的购…

IF:9.0+期刊被踢除,11月SCI/SSCI期刊目录已更新!

【SciencePub学术】2023年11月20日&#xff0c;科睿唯安更新了Web of Science核心期刊目录。 继上次SCI期刊目录和SSCI期刊目录更新之后&#xff0c;本次11月更新共有5本期刊发生变动&#xff1a; • SCIE&#xff1a;有5本期刊不再被SCIE期刊目录收录&#xff0c;1本SCIE期刊更…

Flask Web开发:数据库

目录 在虚拟环境中安装Flask-SQLAlchemy&#xff1a; 一、配置 数据库配置示例&#xff1a; 二、定义模型 Role 和 User 模型代码&#xff1a; &#xff08;1&#xff09;常用的 SQLAlchemy 列类型&#xff1a;​编辑 &#xff08;2&#xff09;常用的 SQLAlchemy 列选项…

手撕单链表(C语言)

目录 1.单链表的物理结构 2.头文件的实现 3.SList.c文件的实现 3.1尾插、创建节点 3.2打印 3.3头插 3.4尾删 3.5头删 3.6查找 3.7指定位置之前插入数据 3.8指定位置之后插入数据 3.9删除指定位置节点 3.10删除pos之后的节点 3.11销毁链表 4 所有的代码 1.单链表的物理结构 众所…

Linux删除文件后没有释放空间解决办法

执行下列命令查看处于deleted状态的进程&#xff0c;然后杀掉进程。 lsof | grep deleted注&#xff1a;没有lsof命令的安装一下。 yum install lsof -y

第十篇 基于JSP 技术的网上购书系统——管理员后台管理主界面、订单管理、产品管理功能实现(网上商城、仿淘宝、当当、亚马逊)

目录 1.管理员后台管理——主界面 1.1功能说明 1.2界面设计 1.3处理流程 2.订单管理 2.1功能说明 2.2界面设计 2.3处理流程 2.4数据来源和算法 2.4.1数据来源 2.4.2查询条件 2.4.3表间关系 2.4.4相关sql实例 3.产品管理 3.1功能说明 3.2界面设计 3.3处理流程…

Mybatis系列之 parameterMap 弃用了

我 | 在这里 &#x1f575;️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 &#x1f3e0; 工作 | 广州 ⭐ Java 全栈开发&#xff08;软件工程师&#xff09; &#x1f383; 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 &#x1f3f7;️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…