断言与验证 Selenium IDE

⚡ 智能摘要

Selenium IDE 的脚本和命令功能允许测试人员使用 Selenese(IDE 的轻量级命令语言)录制、编辑和回放浏览器操作。本文将介绍如何录制脚本、手动编写 Selenese 代码、在 Assert 和 Verify 之间进行选择,以及如何使用断点进行调试。

  • 🎬 第一纪录: Selenium IDE 会在您操作浏览器时自动捕获点击、输入和断言。
  • 🧩 塞勒涅语: 每个命令都有一个命令名称、一个可选的目标和一个可选的值——最多两个参数。
  • 🛑 断言 vs 验证: Assert 会在测试失败时停止测试;Verify 会记录失败并继续执行下一步。
  • 🔍 三种命令类型: 操作与页面交互,访问器将状态读取到变量中,断言检查条件。
  • 🐞 调试辅助工具: 使用“执行命令”、“起始点”、“断点”和“单步执行”功能,可以一次检查或重新运行单个命令。
  • 🤖 人工智能提升: AI 测试工具可自动生成 Selenese 代码,推荐可靠的定位器,并将 IDE 脚本转换为 Selenium WebDriver 代码。

如何破解密码?

我们将使用 Mercury 旅游网站是我们测试的Web应用程序。它是一个在线航班预订系统,包含了本教程所需的所有元素。它的基础 URL is https://demo.guru99.com/test/newtours/.

现在让我们创建我们的第一个测试脚本 Selenium IDE 使用最常用的方法——录制。之后,我们将使用回放功能执行脚本。

注意: 本教程采用经典方法 Firefox-只要 Selenium 使用 Firebug 的 IDE 1.x 版本介绍 Selenese 的基础知识。Firebug 已于 1999 年停用。 Firefox 57,以及现代 Selenium IDE 现在是 Chrome / Firefox / Edge浏览器扩展程序,采用不同的用户界面。下文所述的Selenese概念、命令类型和调试功能仍然直接适用于新的IDE。

通过录制创建脚本

步骤1)

  • 正式上线 Firefox 和 Selenium IDE。
  • 输入我们基础值的值 URL: https://demo.guru99.com/test/newtours/.
  • Toggl打开录制按钮(如果默认情况下未打开)。

Selenium IDE 和 Base URL 设置和录制按钮已开启

步骤2) In Firefox, 导航 https://demo.guru99.com/test/newtours/. Firefox 应该会跳转到类似下图的页面。

Mercury 旅游主页 Firefox

步骤3)

  • 在页面内的任何空白处单击鼠标右键——例如,在…… Mercury 左上角是旅游标志。点击后会显示…… Selenium IDE上下文菜单。 不要 点击任何超链接对象或图像。
  • 点击 显示可用命令 选项。
  • 选择 assertTitle exact: Welcome: Mercury Tours此命令检查页面标题是否正确。

Selenium IDE 上下文菜单显示可用命令

Selenium IDE 编辑器显示已添加 assertTitle 命令

步骤4)

  • 用户名 文本框 Mercury 旅游,请输入无效用户名 invalidUNN.
  • 密码 在文本框中输入无效密码 invalidPWD.

输入的用户名无效 Mercury 旅游表格

输入的密码无效 Mercury 旅游表格

步骤5) 点击 签到 按钮。 Firefox 应该会跳转到下面显示的页面。

Mercury 旅游登录失败页面

步骤6) Toggl关闭录制按钮即可停止录制。您的脚本现在应该与下面的脚本类似。

Selenium IDE 停止后录制了脚本ping 录音机

步骤7) 现在保存录制的测试脚本。 文件 菜单中选择 保存测试用例,或按 按Ctrl+S.

在“保存测试用例”选项中 Selenium IDE 文件菜单

步骤8)

  • 选择目标文件夹,然后命名 测试用例 无效登录.
  • 点击 已保存.

保存对话框命名 Selenium IDE 测试用例 Invalid_login

步骤9) 请注意,该文件已保存为 HTML 格式。

已保存的测试用例文件,扩展名为 HTML

步骤10) 返回 Selenium IDE 并点击 回放 按下按钮即可执行整个脚本。 Selenium IDE 会忠实地重现每一个操作。

Selenium IDE播放按钮执行录制的脚本

简介 Selenium 命令 – Selenese

Selenese 是驱动该引擎的脚本语言。 Selenium 集成开发环境(IDE)。规则很简单:

  • 每个 Selenese 命令最多接受两个参数——一个 目标 配备 折扣值.
  • 参数并非总是必需的,具体数量取决于命令。

命令类型

塞勒涅语将命令分为三类。每一类在脚本中都扮演着不同的角色。

行动 直接与页面元素交互的命令。例如: click 与你点击的元素进行交互; type 将一个值放入文本框中,文本框会将该值显示出来,从而实现双向交互。
存取器 将值存储到变量中的命令。例如: storeTitle 只读取页面标题并保存——不会更改页面上的任何内容。
断言 用于验证条件的命令。Selenese 提供了三种断言方式: 断言 测试失败时停止测试。 确认 记录故障并继续执行, 等待 暂停直到条件为真(默认超时时间为 30 秒,可在“选项”>“常规”下配置)。

断言与验证 Selenium

下图对比了 Assert 命令和 Verify 命令在测试过程中检查失败时的运行时行为。

断言命令行为停止ping 失败测试

验证命令行为,在记录失败后继续测试

常用命令

命令 参数数量 描述
open 0-2 使用以下方式打开页面 URL.
点击/点击并等待 1 点击指定元素。
类型/类型键 2 输入一系列字符。
验证标题 / 断言标题 1 将实际页面标题与预期值进行比较。
验证文本存在 1 检查给定文本是否在页面中找到。
验证元素是否存在 1 检查是否存在特定元素。
验证表 2 将表的内容与预期值进行比较。
等待页面加载 1 暂停执行,直到页面加载完成。
等待元素出现 1 暂停执行,直到出现指定的元素。

使用 Firebug 手动创建脚本

现在让我们手动重新创建相同的测试用例。ping 这些命令。本教程使用 Firebug 来检查元素定位器。(在现代 Selenium 如果使用 IDE,请使用浏览器内置的开发者工具,而不是 Firebug。)

步骤1) 可选 Firefox 和 Selenium IDE。输入基本信息 URL https://demo.guru99.com/test/newtours/录制按钮必须处于关闭状态。

Selenium IDE录制切换开关处于关闭状态

步骤2) 单击编辑器中最上面的空白行。

选择第一个空白行 Selenium IDE编辑器

类型 open 在命令文本框中输入命令,然后按 Enter 键。

输入打开命令 Selenium IDE 命令字段

步骤3) 导航 Firefox 到基地 URL 并激活 Firebug。在 IDE 编辑器中,选择下面一行 open 命令和类型 assertTitle为了确保准确性,请使用自动完成建议。

在 assertTitle 中自动完成建议 Selenium IDE

步骤4) 在 Firebug 中,展开 <head> 标签显示 <title>点击标题值(欢迎: Mercury 旅行路线)并将其粘贴到 Target 编辑器中的字段。

将 Firebug 中的页面标题复制到 IDE 的目标字段中

步骤5) 点击编辑器中的第三个空白行,然后输入 type 在“命令”字段中。在 Firebug 中,单击 检查 按钮。

正在添加类型命令 Selenium IDE编辑器

点击用户名文本框。Firebug 会自动显示匹配的 HTML 元素。

使用 Firebug 检查用户名字段 Mercury 旅行路线

步骤6) “用户名”文本框没有 ID,但它有一个 NAME 属性。复制 NAME 值并将其粘贴到 Target 现场 Selenium IDE。

复制用户名字段 NAME 属性

仍然在 Target 字段,前缀 userName - name= so Selenium IDE 会定位到 NAME 属性为……的元素。 userName.

Selenium IDE 目标字段,名称=userName 定位器

类型 invalidUN 在“值”字段中。您的脚本现在有了第三条命令。 Selenium IDE区分大小写,因此请将值和属性名称与应用程序中显示的名称完全一致。

输入命令,目标名称为 name=userName,值为 invalidUN。

步骤7) 添加第四条命令ping type 在“命令”字段中。使用 Firebug 的 检查 密码文本框上的按钮。

使用 Firebug 检查密码字段

粘贴 NAME 属性(password) 进入 Target 字段,前缀为 name=并将值设置为 invalidPW.

Selenium 在添加密码类型命令后的IDE脚本

步骤8) 添加第五条命令ping clickAndWait 在“命令”字段中。使用 Firebug 的 检查 在“登录”按钮上。

使用 Firebug 检查登录按钮

粘贴 NAME 值(login) 进入 Target 田野 name= 字首。

最终手册 Selenium 包含五个命令的 IDE 脚本

步骤9) 像之前一样保存测试用例。

使用“查找”按钮

找到最适合您的地方 按钮 Selenium IDE确认输入的值 Target 该字段实际上与页面上的一个 UI 元素相匹配。

打开 无效登录 执行上一节中的测试用例,然后单击任何带有 a 的命令 Target 入口——例如,第三个命令。

查找按钮在旁边 Target 场在 Selenium IDE

点击 找到最适合您的地方用户名文本框位于 Mercury 旅游页面会短暂高亮显示。

用户名字段已高亮显示 Firefox 点击“查找”后

亮点证实了这一点 Selenium IDE 已正确解析定位器。如果高亮显示的元素错误(或未高亮显示任何元素),则需要更正脚本中的定位器。

执行命令

执行命令会运行脚本中的一行,而不会运行整个测试用例。 点击你想运行的线路,然后选择 操作 > 执行此命令 从菜单中或按 X 在键盘上。

步骤1) 确保浏览器已开启。 Mercury 旅游线路主页。点击您想乘坐的线路——例如, type | userName | invalidUN.

输入选定的命令以执行 Selenium IDE

步骤2) 媒体中心 X 在键盘上。

步骤3) 页面上的用户名文本框已填充内容 invalidUN.

执行命令后,用户名字段会被填充。

以这种方式执行命令取决于页面。 Firefox 正在显示。 在……上运行相同的命令 Google的主页会失败,因为没有名为“”的字段 userName 有。

起点

起点说明 Selenium IDE 指示从哪一行开始执行。 快捷键是 S.

起点设定在 Selenium IDE脚本行

在上面的例子中,播放从第三行开始(type | password | invalidPW). 测试脚本只能有一个起始点。 与执行命令类似,起始点取决于当前显示的页面,如果页面错误,则会失败。

断点

断点表明 Selenium IDE 可以自动在指定行暂停测试。快捷键是 B.

断点指标 Selenium IDE脚本行

黄色高亮部分显示的是暂停的步骤。 一个测试用例可以有多个断点。

步骤

步骤 该命令会在暂停的测试用例之后运行下一行代码。将其与断点结合使用,可以一次执行一条命令来逐步执行脚本。

点击“步骤”之前,测试在 clickAndWait 处暂停。

点击“步骤”之前。 测试用例暂停在以下行 clickAndWait | login.

点击“步骤”后,测试进入下一个命令。

点击“步骤”后。clickAndWait | login 命令运行,执行暂停,等待下一个命令(verifyTitle | Sign-on: Mercury Tours即使没有断点,下一行也会暂停——这就是 Step 的作用。

在源视图中使用其他格式时需要注意的重要事项

注意:非 HTML 源代码视图格式存在安全隐患。

Selenium IDE 1.x 目前仅能稳定支持 HTML 格式——其他格式仍处于实验阶段。 不建议在非 HTML 源代码视图中创建或编辑测试。截至 1.9.1 版本,已知问题如下:

  • 如果不切换回 HTML 模式,就无法使用播放功能或切换回表格视图。
  • 在源代码视图中添加命令最安全的方法是录制命令。
  • 在源代码视图中进行的手动编辑,在切换到其他格式时会丢失。
  • 您可以在源代码视图中保存测试用例,但是 Selenium IDE可能无法重新打开它。

将 Selenese 测试转换为其他语言的推荐方法是: 文件 > 导出测试用例为… 菜单,而不是源代码视图。

常见问题

遗产 Firefox-只要 Selenium IDE 1.x 已停止维护。现代版本 Selenium IDE是Chrome浏览器的一个扩展程序。 Firefox以及来自 selenium.dev 的 Edge,支持录制和回放以及导出到 WebDriver 代码。

对于测试无法继续进行的硬性前提条件(例如,必须先加载正确的页面),请使用 Assert。当后续检查即使当前检查失败仍能提供价值时,例如验证表单上的多个字段,请使用 Verify。

Firebug 已于 1999 年退役。 Firefox 57. 使用浏览器内置的开发者工具(F12)或 SelectorsHub、ChroPath 或 Playwright Inspector 等扩展程序来捕获 XPath 和 CSS 定位器。 Selenium 脚本。

是的。 AI 测试平台监控用户会话,生成 Selenese 命令,提供可靠的定位器建议,并将录制的脚本转换为 Selenium WebDriver 代码 Java, Python 或 Java编写脚本所需的人工操作大大减少。

生成式人工智能会检查 DOM 快照,并提出更不容易失效的定位器——优先选择经过数据测试的属性,而不是脆弱的 XPath。自愈式人工智能代理会在 UI 更改后自动重写定位器,以保持其可靠性。ping Selenium IDE脚本显示绿色。

总结一下这篇文章: