Skip to content

SeleniumIDE自动化用例录制

Selenium IDE 自动化用例录制

简介

Selenium IDE 是一个浏览器扩展,用于记录和回放用户的操作。

Selenium 的集成开发环境(Selenium IDE)是一个易于使用的浏览器扩展,使用现有的 Selenium 命令记录用户在浏览器中的操作,参数由每个元素的上下文定义。它提供了学习 Selenium 语法的绝佳方式。它适用于 Google Chrome、Mozila Firefox 和 Microsoft Edge。

虽然 Selenium IDE 可以帮我们生成代码、录制回放、元素定位等功能,但是缺点也很明显:

录制回放方式的稳定性和可靠性有限。 只支持 Firefox、Chrome。 对于复杂的页面逻辑其处理能力有限。

使用场景

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

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

环境准备

官网:

https://www.selenium.dev/

Chrome 插件:

https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd

Firefox 插件:

https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/

github release:

https://github.com/SeleniumHQ/selenium-ide/releases

其它版本:

https://addons.mozilla.org/en-GB/firefox/addon/selenium-ide/versions/

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

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

创建项目

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

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

  1. 点击 Selenium IDE 图标

    Alt text

  2. 创建一个新项目

    Alt text

  3. 输入项目名称

    Alt text

  4. 进入界面

    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 窗口并单击停止录制按钮。 Alt text

  4. 停止后,为刚录制的测试用例取名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)。