跳转至

Selenium IDE 自动化用例录制


简介

Selenium IDE 是一个浏览器扩展,用于记录和回放用户的操作。它提供了学习 Selenium 语法的绝佳方式。并且适用于 Google Chrome、Mozila Firefox 和 Microsoft Edge。 使用 Selenium IDE 可以帮助生成代码、录制回放、元素定位等功能。


使用场景

  • 刚开始入门 UI 自动化测试。
  • 团队代码基础较差。
  • 技术成长之后学习价值不高。

注意:Selenium IDE 更适合简单的自动化测试任务,对于复杂的测试需求和更高级的自动化任务,需要使用 WebDriver 或其他自动化工具。


环境准备

注意:Chrome 插件在国内无法下载,Firefox 可以直接下载。


安装完成后,通过在浏览器的菜单栏中点击图标启动。


创建项目

安装完成后,通过在浏览器的菜单栏中点击图标来启动。如果没看到图标,首先确保是否安装了 SeleniumIDE 扩展插件,可以通过点击菜单栏扩展程序按钮,找到并启动 SeleniumIDE。


创建一个新项目

Alt text


输入项目名称


进入录制界面

Alt text


Selenium IDE 常用功能

  1. 新建、保存、打开
  2. 开始和停止录制
  3. 运行 8 中的所有的实例
  4. 运行单个实例
  5. 调试模式
  6. 调整案例的运行速度
  7. 要录制的网址
  8. 实例列表
  9. 动作、目标、值
  10. 对单条命令的解释
  11. 运行日志

实战演示

  1. 创建新项目后,取名为 hogwarts_demo1

  2. 点击录制按钮,然后需要填写 URL(要录制测试脚本的网站 URL),这里使用的是 https://ceshiren.com/

  3. 完成设置后,将打开一个新的浏览器窗口,加载 URL 并开始录制脚本。在页面上的操作都将记录在 IDE 中。操作完成后,切换到 IDE 窗口并单击停止录制按钮。


4.Alt text


5.停止后,为刚录制的测试用例取名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 的值就会出现相应的定位表达式。


总结

  • 环境准备
  • Selenium IDE 常用功能