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.查看测试报告

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

听GPT 讲Rust源代码--src/bootstrap

图片来自 使用rust的image库进行图片压缩[1] File: rust/src/bootstrap/build.rs 在Rust源代码中,rust/src/bootstrap/build.rs这个文件是一个构建脚本。构建脚本是一个在编译Rust编译器本身时运行的程序,它用于初始化和配置Rust编译器的构建过程。build…

数据结构【栈】

文章目录 数据结构 栈栈的概念与结构栈接口实现 数据结构 栈 栈的概念与结构 栈是是一种特殊的线性表,栈的规定是只在一端插入删除数据,插入删除的一端叫做栈顶,另一端叫栈底。根据上面的特性,栈的数据是后入先出 栈接口实现 栈接…

Java-方法的重写

【1】重写: 发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行重写。 【2】重写有严格的格式要求: 子类的方法名字和父类必须一致,参数列表(个数,类型&#xff0c…

Java基础-----StringBuffer和StringBuilder

文章目录 1.StringBuffer1.1 构造方法1.2 常用方法 2.StringBuilder3.String、StringBuffer、StringBuilder的区别 1.StringBuffer 内容可变的字符串类,适应StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象。StringBuffer在初始时&#x…

【Spring】SpringBoot的扩展点之ApplicationContextInitializer

简介 其实spring启动步骤中最早可以进行扩展的是实现ApplicationContextInitializer接口。来看看这个接口的注释。 package org.springframework.context;/*** Callback interface for initializing a Spring {link ConfigurableApplicationContext}* prior to being {linkpl…

【Linux】【开发】使用sed命令遇到的乱码问题

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:Linux技术&…

蓝桥杯每日一题2023.11.20

题目描述 “蓝桥杯”练习系统 (lanqiao.cn) 题目分析 方法一&#xff1a;暴力枚举&#xff0c;如果说数字不在正确的位置上也就意味着这个数必须要改变&#xff0c;进行改变记录即可 #include<bits/stdc.h> using namespace std; const int N 2e5 10; int n, a[N], …

基于野狗算法优化概率神经网络PNN的分类预测 - 附代码

基于野狗算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于野狗算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于野狗优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

【教3妹学编辑-mysql】详解数据库三大范式

什么是范式 简单地理解就是&#xff1a;数据库设计时遵循的规范 三大范式 数据库三大范式包含&#xff1a;1、第一范式(1NF)&#xff1b;2、第二范式(2NF)&#xff1b;3、第三范式(3NF)。其中&#xff0c;第一范式(1NF)的要求是属性不可分割&#xff0c;第二范式(2NF)的要求是…

Java基础-----正则表达式

文章目录 1.简介2.目的3.学习网站4.常用匹配字符5.String类中用到正则表达式的方法 1.简介 又叫做规则表达式。是一种文本模式&#xff0c;包括普通字符和特殊字符&#xff08;元字符&#xff09;。正则使用单个字符来描述、匹配一系列某个句法规则的字符串&#xff0c;通常用…

机器学习笔记 - Ocr识别中的CTC算法原理概述

一、文字识别 在文本检测步骤中,分割出了文本区域。现在需要识别这些片段中存在哪些文本。 机器学习笔记 - Ocr识别中的文本检测EAST网络概述-CSDN博客文章浏览阅读300次。在 EAST 网络的这个分支中,它合并了 VGG16 网络不同层的特征输出。现在,该层之后的特征大小将等于 p…

《崩坏:星穹铁道》1.5仙舟罗浮-绥园全宝箱攻略

大家好&#xff0c;我是闲游盒小盒子&#xff0c;本篇来说下崩铁1.5版本仙舟罗浮-绥园的全宝箱攻略&#xff0c;共有19个宝箱加1个扑满&#xff1b;做完间章可获取前14个普通宝箱加2个精英怪宝箱&#xff0c;以及1个扑满&#xff1b;完成《狐斋志异》全任务可获得另外3个宝箱。…

Wireshark抓包:理解TCP三次握手和四次挥手过程

TCP是一种面向连接、端到端可靠的协议&#xff0c;它被设计用于在互联网上传输数据和确保成功传递数据和消息。本节来介绍一下TCP中的三次握手和四次挥手。 文章目录 1 TCP头部格式2 wireshark抓包分析2.1 SEQ和ACK2.2 三次握手2.3 四次挥手 3 程序 1 TCP头部格式 TCP头部占据…

Unity--互动组件(Scrollbar)||Unity--互动组件(DropDown )

此组件中的&#xff0c;交互&#xff0c;过渡&#xff0c;导航与文章&#xff08;Unity--互动组件&#xff08;Button&#xff09;&#xff09;中的介绍如同&#xff1b; handle rect&#xff1a;&#xff08;父节点矩形&#xff09; 用于控件的滑动“句柄”部分的图形&#xf…

Apache Airflow (十二) :PythonOperator

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

VMware创建Linux虚拟机之(三)Hadoop安装与配置及搭建集群

Hello&#xff0c;world&#xff01; &#x1f412;本篇博客使用到的工具有&#xff1a;VMware16 &#xff0c;Xftp7 若不熟悉操作命令&#xff0c;推荐使用带GUI页面的CentOS7虚拟机 我将使用带GUI页面的虚拟机演示 虚拟机&#xff08;Virtual Machine&#xff09; 指通过…

使用Python的turtle模块绘制玫瑰花图案(含详细Python代码与注释)

1.1引言 turtle模块是Python的标准库之一&#xff0c;它提供了一个绘图板&#xff0c;让我们可以在屏幕上绘制各种图形。通过使用turtle&#xff0c;我们可以创建花朵、叶子、复杂的图案等等。本博客将介绍如何使用turtle模块实现绘制图形的过程&#xff0c;并展示最终结果。 …

matlab 坡度滤波算法地面分割

目录 一、算法原理1、实现流程2、参考文献二、代码实现三、结果展示四、测试数据一、算法原理 1、实现流程 1、格网示意图 2、计算格网行列数 公式中的特殊符号为向上取整,

从0开始学习JavaScript--JavaScript使用Promise

JavaScript中的异步编程一直是开发中的重要话题。传统的回调函数带来了回调地狱和代码可读性的问题。为了解决这些问题&#xff0c;ES6引入了Promise&#xff0c;一种更现代、更灵活的异步编程解决方案。本文将深入探讨JavaScript中如何使用Promise&#xff0c;通过丰富的示例代…

C++二分算法:找到最接近目标值的函数值

本文涉及的基础知识点 二分查找算法合集 题目 Winston 构造了一个如上所示的函数 func 。他有一个整数数组 arr 和一个整数 target &#xff0c;他想找到让 |func(arr, l, r) - target| 最小的 l 和 r 。 请你返回 |func(arr, l, r) - target| 的最小值。 请注意&#xff0c…