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