如何使用带有脚本和命令的Selenium IDE(断言,验证)
我们将使用 Mercury Tours 网站作为我们正在测试的 Web 应用程序。它是一个在线航班预订系统,包含本教程所需的所有元素。其 URL 为 https://demo.guru99.com/test/newtours/,这将是我们的基本 URL。
现在,让我们使用最常见的方法——通过录制,在 Selenium IDE 中创建我们的第一个测试脚本。之后,我们将使用回放功能执行脚本。
通过录制创建脚本
步骤 1
- 启动 Firefox 和 Selenium IDE。
- 输入我们的基本 URL 值:https://demo.guru99.com/test/newtours/。
- 打开录制按钮(如果默认未打开)。
步骤 2
在 Firefox 中,导航到 https://demo.guru99.com/test/newtours/。Firefox 应该会带您进入类似下面所示的页面。 |
|
步骤 3
|
|
步骤 4
|
|
步骤 5
|
|
步骤 6
关闭录制按钮以停止录制。您的脚本现在应该如下图所示。 |
|
步骤 7
现在我们已经完成了测试脚本,我们将把它保存为一个测试用例。在“文件”菜单中,选择“保存测试用例”。或者,您只需按 Ctrl+S。 |
|
步骤 8
|
|
步骤 9
注意,文件保存为 HTML 格式。 |
步骤 10) 返回 Selenium IDE,点击播放按钮执行整个脚本。Selenium IDE 应该能够完美地复制所有操作。
Selenium 命令简介 – Selenese
- Selenese 命令最多可以有两个参数:目标和值。
- 参数并非总是必需的。它取决于命令需要多少参数。
命令类型
动作 | 这些是直接与页面元素交互的命令。
示例:“点击”命令是一个动作,因为您直接与您点击的元素进行交互。 “类型”命令也是一个动作,因为您将值输入到文本框中,文本框会向您显示它们。您和文本框之间存在双向交互。 |
---|---|
访问器 | 它们是允许您将值存储到变量的命令。
示例:“storeTitle”命令是一个访问器,因为它只“读取”页面标题并将其保存到一个变量中。它不与页面上的任何元素进行交互。 |
断言 | 它们是验证是否满足特定条件的命令。
3 种断言类型
|
Selenium 中的断言与验证
常用命令
命令 | 参数数量 | 描述 |
---|---|---|
打开 | 0 – 2 | 使用 URL 打开页面。 |
单击/单击并等待 | 1 | 点击指定的元素。 |
类型/键入 | 2 | 键入一系列字符。 |
验证标题/断言标题 | 1 | 将实际页面标题与预期值进行比较。 |
验证文本是否存在 | 1 | 检查页面内是否找到某个文本。 |
验证元素是否存在 | 1 | 检查某个元素是否存在。 |
验证表格 | 2 | 将表格内容与预期值进行比较。 |
等待页面加载 | 1 | 暂停执行直到页面完全加载。 |
等待元素出现 | 1 | 暂停执行直到指定元素出现。 |
使用 Firebug 手动创建脚本
现在,我们将通过手动输入命令来重新创建相同的测试用例。这次,我们需要使用 Firebug。
步骤 1
|
步骤 2: 点击编辑器中最顶部的空白行。 |
在“命令”文本框中输入“open”,然后按回车。 |
步骤 3
|
步骤 4
|
步骤 5
|
点击用户名文本框。注意 Firebug 会自动显示该元素的 HTML 代码。 |
步骤 6 注意,“用户名”文本框没有 ID,但它有一个 NAME 属性。因此,我们将使用其 NAME 作为定位器。复制 NAME 值并将其粘贴到 Selenium IDE 的“目标”字段中。
仍在“目标”文本框中,在“userName”前添加“name=”,表示 Selenium IDE 应将目标设置为 NAME 属性为“userName”的元素。 在 Selenium IDE 的“值”文本框中输入“invalidUN”。您的测试脚本现在应该如下图所示。我们已经完成了第三个命令。注意:您可以使用任何其他文本字符串代替 invalidUN。但是 Selenium IDE 区分大小写,您需要完全按照应用程序中的值/属性进行输入。 |
步骤 7
|
步骤 8
|
步骤 9: 按照我们上一节中的方法保存测试用例。
使用查找按钮
Selenium IDE 中的“查找”按钮用于验证我们输入到“目标”文本框中的内容是否确实是正确的 UI 元素。
让我们使用我们在前几节中创建的 Invalid_login 测试用例。点击任何包含“目标”条目的命令,例如第三个命令。
点击“查找”按钮。注意,Mercury Tours 页面中的“用户名”文本框会突出显示一秒钟。
这表明 Selenium IDE 能够正确检测并访问预期元素。如果“查找”按钮突出显示了不同的元素或根本没有元素,则您的脚本可能存在问题。
执行命令
这允许您在不运行整个测试用例的情况下执行任何单个命令。只需点击您希望执行的行,然后从菜单栏中点击“操作 > 执行此命令”或直接按键盘上的“X”。
步骤 1) 确保您的浏览器位于 Mercury Tours 主页上。点击您希望执行的命令。在此示例中,点击“type | userName | invalidUN”行。
步骤 2) 按下键盘上的“X”键。
步骤 3) 观察到用户名的文本框中填充了文本“invalidUN”
以这种方式执行命令高度依赖于 Firefox 当前显示的页面。这意味着,如果您在显示 Google 主页而不是 Mercury Tours 主页时尝试上述示例,那么您的步骤将失败,因为 Google 主页中没有具有“userName”属性的文本框。
起点
起点是一个指示器,告诉 Selenium IDE 执行将从哪一行开始。它的快捷键是“S”。
在上面的例子中,回放将从第三行(type | password | invalidPW)开始。一个测试脚本中只能有一个起点。
起点类似于执行命令,因为它们都依赖于当前显示的页面。如果您在错误的页面上,起点将失败。
断点
断点是告诉 Selenium IDE 在哪里自动暂停测试的指示器。快捷键是“B”。
黄色高亮表示当前步骤处于待定状态。这证明 Selenium IDE 已在该步骤暂停执行。一个测试用例中可以有多个断点。
步骤
它允许您在暂停测试用例后逐个执行后续命令。让我们使用上一节“断点”中的场景。
点击“步进”之前。
测试用例在“clickAndWait | login”行暂停。 |
|
点击“步进”之后。
“clickAndWait | login”行运行并暂停到下一个命令(verifyTitle | Sign-on: Mercury Tours)。 请注意,即使没有断点,下一行也会暂停。这是“步进”功能的主要目的——它逐个执行后续命令,以便您有更多时间检查每个步骤之后的结果。 |
在源代码视图中使用其他格式时需要注意的重要事项
Selenium IDE 仅适用于 HTML – 其他格式仍处于实验模式。不建议在源代码视图中使用其他格式创建或编辑测试,因为仍需要大量工作才能使其稳定。以下是 1.9.1 版已知的错误。
- 除非您恢复到 HTML,否则您将无法执行回放或切换回表格视图。
- 在源代码中安全添加命令的唯一方法是录制它们。
- 当您手动修改源代码时,当您切换到另一种格式时,所有内容都将丢失。
- 尽管您可以在源代码视图中保存测试用例,但 Selenium IDE 将无法打开它。
推荐的转换 Selenese 测试的方法是使用“文件”菜单下的“将测试用例导出为...”选项,而不是通过源代码视图。
摘要
- 测试脚本可以通过录制或手动输入命令和参数来创建。
- 手动创建脚本时,使用 Firebug 获取定位器。
- “查找”按钮用于检查命令是否能够访问正确的元素。
- 表格视图以表格形式显示测试脚本,而源代码视图以 HTML 格式显示。
- 将源代码视图更改为非 HTML 格式仍处于实验阶段。
- 不要在源代码视图中创建其他格式的测试。请改用导出功能。
- 参数并非总是必需的。这取决于命令。
- 共有三种命令类型
- 动作 – 直接与页面元素交互
- 访问器 – “读取”元素属性并将其存储到变量中
- 断言 – 将实际值与预期值进行比较
- 断言有三种类型
- 断言 – 失败时,后续步骤不再执行
- 验证 – 失败时,后续步骤仍会执行。
- 等待 – 如果指定条件在超时时间内变为真,则通过;否则,它将失败。
- 最常见的命令是
- 打开
- 单击/单击并等待
- 类型/键入
- 验证标题/断言标题
- 验证文本是否存在
- 验证元素是否存在
- 验证表格
- 等待页面加载
- 等待元素出现