SeleniumIDE自动化用例录制
Selenium IDE 自动化用例录制
简介
Selenium IDE 是一个浏览器扩展,用于记录和回放用户的操作。
Selenium 的集成开发环境(Selenium IDE)是一个易于使用的浏览器扩展,使用现有的 Selenium 命令记录用户在浏览器中的操作,参数由每个元素的上下文定义。它提供了学习 Selenium 语法的绝佳方式。它适用于 Google Chrome、Mozila Firefox 和 Microsoft Edge。
虽然 Selenium IDE 可以帮我们生成代码、录制回放、元素定位等功能,但是缺点也很明显:
录制回放方式的稳定性和可靠性有限。 只支持 Firefox、Chrome。 对于复杂的页面逻辑其处理能力有限。
使用场景
- 刚开始入门 UI 自动化测试。
- 团队代码基础较差。
- 技术成长之后学习价值不高。
注意:Selenium IDE 更适合简单的自动化测试任务,对于复杂的测试需求和更高级的自动化任务,需要使用 WebDriver 或其他自动化工具。
环境准备
官网:
Chrome 插件:
https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
Firefox 插件:
https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/
github release:
其它版本:
https://addons.mozilla.org/en-GB/firefox/addon/selenium-ide/versions/
注意:Chrome 插件在国内无法下载,Firefox 可以直接下载。
安装完成后,通过在浏览器的菜单栏中点击图标启动。
创建项目
安装完成后,通过在浏览器的菜单栏中点击图标来启动。
如果没看到图标,首先确保是否安装了 SeleniumIDE 扩展插件,可以通过点击菜单栏扩展程序按钮,找到并启动 SeleniumIDE。
-
点击
Selenium IDE
图标 -
创建一个新项目
-
输入项目名称
-
进入界面
Selenium IDE 常用功能
- 新建、保存、打开
- 开始和停止录制
- 运行 8 中的所有的实例
- 运行单个实例
- 调试模式
- 调整案例的运行速度
- 要录制的网址
- 实例列表
- 动作、目标、值
- 对单条命令的解释
- 运行日志
实战演示
录制第一个测试用例
-
创建新项目后,取名为
hogwarts_demo1
。 -
点击录制按钮,然后需要填写 URL(要录制测试脚本的网站 URL),这里使用的是 https://ceshiren.com/。
-
完成设置后,将打开一个新的浏览器窗口,加载 URL 并开始录制脚本。在页面上的操作都将记录在 IDE 中。操作完成后,切换到 IDE 窗口并单击停止录制按钮。
-
停止后,为刚录制的测试用例取名
ceshiren_demo1
。
导出用例结构分析
利用 Selenium IDE 导出 Python pytest 格式代码,导出用例代码如下:
Python 演示代码
#注释是由 Selenium IDE 生成的代码
# Generated by Selenium IDE
#导入可能用到的依赖
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestCeshirendemo1():
# setup_module()只会在开始测试运行一次
def setup_method(self, method):
# 初始化webdriver
self.driver = webdriver.Chrome()
self.vars = {}
# teardown_module()只会在结束测试运行一次
def teardown_method(self, method):
# 关闭浏览器并关闭启动 ChromeDriver 时启动的 ChromeDriver 可执行文件
self.driver.quit()
# 测试方法
def test_ceshirendemo1(self):
# 访问网址
self.driver.get("https://ceshiren.com/")
# 设置窗口大小
self.driver.set_window_size(1382, 744)
# 点击操作
self.driver.find_element(By.LINK_TEXT, "类别").click()
# 设置等待时间为2秒
time.sleep(2)
# 关闭当前窗口
self.driver.close()
Java 演示代码
// Generated by Selenium IDE:此注解表示以下代码由Selenium IDE自动生成
//下面是可能要用到的包
import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.JavascriptExecutor;
import java.util.*;
public class CeshirenTest {
//全局化变量 WebDriver driver 方便后面测试方法调用浏览器对象
private WebDriver driver;
private Map<String, Object> vars;
JavascriptExecutor js;
//前置动作注解:在整个测试类执行前执行一次
@Before
public void setUp() {
//创建谷歌浏览器对象
driver = new ChromeDriver();
js = (JavascriptExecutor) driver;
vars = new HashMap<String, Object>();
}
//后置动作注解:在整个测试类执行完毕时执行一次
@After
public void tearDown() {
driver.quit();
}
//JUnit测试方法标识注解@Test,表示以下方法是用于测试
@Test
public void ceshiren() {
//打开网页
driver.get("https://ceshiren.com/");
//调整网页的大小
driver.manage().window().setSize(new Dimension(1936, 1056));
//点击页面中类别下拉框
driver.findElement(By.cssSelector("#ember18-header .name")).click();
//选中其中的某个选项
driver.findElement(By.id("ember77")).click();
}
}
这段代码就简单的实现了对浏览器操作的自动化。
保存
单击 IDE 右上角的 save 图标,输入项目的保存名称和地址。
回放
选择想要回放的测试用例,单击 play 按钮,在 IDE 中回放测试。
控件定位
如果想定位其他的控件,只需要点击图中的箭头,点击后就会跳转到浏览器,然后点击想要定位的控件,Target 的值就会出现相应的定位表达式(见图 3-8)。