如何使用带有脚本和命令的Selenium IDE(断言,验证)

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

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

通过录制创建脚本

步骤 1

Create a Script by Recording

步骤 2

在 Firefox 中,导航到 https://demo.guru99.com/test/newtours/。Firefox 应该会带您进入类似下面所示的页面。

Create a Script by Recording

步骤 3

  • 右键单击页面内的任何空白区域,例如左上角的 Mercury Tours 标志。这将弹出 Selenium IDE 上下文菜单。注意:不要点击任何超链接对象或图像。
  • 选择“显示可用命令”选项。
  • 然后,选择“assertTitle exact: Welcome: Mercury Tours”。这是一个确保页面标题正确的命令。

Create a Script by Recording

Create a Script by Recording

步骤 4

  • 在 Mercury Tours 的“用户名”文本框中,输入一个无效用户名,“invalidUNN”。
  • 在“密码”文本框中,输入一个无效密码,“invalidPWD”。

Create a Script by Recording

Create a Script by Recording
步骤 5

  • 点击“登录”按钮。Firefox 应该会带您进入这个页面。

Create a Script by Recording

步骤 6

关闭录制按钮以停止录制。您的脚本现在应该如下图所示。

Create a Script by Recording

步骤 7

现在我们已经完成了测试脚本,我们将把它保存为一个测试用例。在“文件”菜单中,选择“保存测试用例”。或者,您只需按 Ctrl+S。

Create a Script by Recording

步骤 8

  • 选择您想要的位置,然后将测试用例命名为“Invalid_login”。
  • 点击“保存”按钮。

Create a Script by Recording

步骤 9

注意,文件保存为 HTML 格式。

Create a Script by Recording

步骤 10) 返回 Selenium IDE,点击播放按钮执行整个脚本。Selenium IDE 应该能够完美地复制所有操作。

Create a Script by Recording

Selenium 命令简介 – Selenese

  • Selenese 命令最多可以有两个参数:目标和值。
  • 参数并非总是必需的。它取决于命令需要多少参数。

命令类型

动作 这些是直接与页面元素交互的命令。

示例:“点击”命令是一个动作,因为您直接与您点击的元素进行交互。

“类型”命令也是一个动作,因为您将值输入到文本框中,文本框会向您显示它们。您和文本框之间存在双向交互。

访问器 它们是允许您将值存储到变量的命令。

示例:“storeTitle”命令是一个访问器,因为它只“读取”页面标题并将其保存到一个变量中。它不与页面上的任何元素进行交互。

断言 它们是验证是否满足特定条件的命令。

3 种断言类型

  • 断言。当“断言”命令失败时,测试会立即停止。
  • 验证。当“验证”命令失败时,Selenium IDE 会记录此失败并继续执行测试。
  • 等待。在执行下一个命令之前,“等待”命令将首先等待特定条件变为真。
    • 如果条件在等待期内变为真,则该步骤通过。
    • 如果条件未变为真,则该步骤失败。失败会被记录,并且测试执行将继续到下一个命令。
    • 默认情况下,超时值设置为 30 秒。您可以在 Selenium IDE 选项对话框的“常规”选项卡下更改此值。

Selenium 中的断言与验证

Assert vs. Verify in Selenium

Assert vs. Verify in Selenium

常用命令

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

使用 Firebug 手动创建脚本

现在,我们将通过手动输入命令来重新创建相同的测试用例。这次,我们需要使用 Firebug。

步骤 1

Create a Script Manually with Firebug

步骤 2: 点击编辑器中最顶部的空白行。

Create a Script Manually with Firebug

在“命令”文本框中输入“open”,然后按回车。

Create a Script Manually with Firebug

步骤 3

  • 将 Firefox 导航到我们的基本 URL 并激活 Firebug
  • 在 Selenium IDE 编辑器窗格中,选择第二行(“open”命令下方的一行),然后在“命令”框中键入“assertTitle”以创建第二个命令。
  • 随意使用自动完成功能。

Create a Script Manually with Firebug

步骤 4

  • 在 Firebug 中,展开 <head> 标签以显示 <title> 标签。
  • 点击 <title> 标签的值(即“Welcome: Mercury Tours”),并将其粘贴到编辑器中的“目标”字段。

Create a Script Manually with Firebug

步骤 5

  • 要创建第三个命令,请点击编辑器中的第三个空白行,然后在命令文本框中键入“type”。
  • 在 Firebug 中,点击“检查”按钮。

Create a Script Manually with Firebug

点击用户名文本框。注意 Firebug 会自动显示该元素的 HTML 代码。

Create a Script Manually with Firebug

步骤 6 注意,“用户名”文本框没有 ID,但它有一个 NAME 属性。因此,我们将使用其 NAME 作为定位器。复制 NAME 值并将其粘贴到 Selenium IDE 的“目标”字段中。

Create a Script Manually with Firebug

仍在“目标”文本框中,在“userName”前添加“name=”,表示 Selenium IDE 应将目标设置为 NAME 属性为“userName”的元素。

Create a Script Manually with Firebug

在 Selenium IDE 的“值”文本框中输入“invalidUN”。您的测试脚本现在应该如下图所示。我们已经完成了第三个命令。注意:您可以使用任何其他文本字符串代替 invalidUN。但是 Selenium IDE 区分大小写,您需要完全按照应用程序中的值/属性进行输入。

Create a Script Manually with Firebug

步骤 7

  • 要创建第四个命令,请在“命令”文本框中键入“type”。
  • 再次使用 Firebug 的“检查”按钮获取“密码”文本框的定位器。

Create a Script Manually with Firebug

  • 将 NAME 属性(“password”)粘贴到“目标”字段,并在其前面加上“name=”
  • 在 Selenium IDE 的“值”字段中输入“invalidPW”。您的测试脚本现在应该如下图所示。

Create a Script Manually with Firebug

步骤 8

  • 对于第五个命令,在 Selenium IDE 的命令文本框中键入“clickAndWait”。
  • 使用 Firebug 的“检查”按钮获取“登录”按钮的定位器。

Create a Script Manually with Firebug

  • 将 NAME 属性的值(“login”)粘贴到目标文本框中,并在其前面加上“name=”。
  • 您的测试脚本现在应该如下图所示。

Create a Script Manually with Firebug

步骤 9: 按照我们上一节中的方法保存测试用例。

使用查找按钮

Selenium IDE 中的“查找”按钮用于验证我们输入到“目标”文本框中的内容是否确实是正确的 UI 元素。

让我们使用我们在前几节中创建的 Invalid_login 测试用例。点击任何包含“目标”条目的命令,例如第三个命令。

Using the Find Button

点击“查找”按钮。注意,Mercury Tours 页面中的“用户名”文本框会突出显示一秒钟。

Using the Find Button

这表明 Selenium IDE 能够正确检测并访问预期元素。如果“查找”按钮突出显示了不同的元素或根本没有元素,则您的脚本可能存在问题。

执行命令

这允许您在不运行整个测试用例的情况下执行任何单个命令。只需点击您希望执行的行,然后从菜单栏中点击“操作 > 执行此命令”或直接按键盘上的“X”。

步骤 1) 确保您的浏览器位于 Mercury Tours 主页上。点击您希望执行的命令。在此示例中,点击“type | userName | invalidUN”行。

Execute Command

步骤 2) 按下键盘上的“X”键。

步骤 3) 观察到用户名的文本框中填充了文本“invalidUN”

Execute Command

以这种方式执行命令高度依赖于 Firefox 当前显示的页面。这意味着,如果您在显示 Google 主页而不是 Mercury Tours 主页时尝试上述示例,那么您的步骤将失败,因为 Google 主页中没有具有“userName”属性的文本框。

起点

起点是一个指示器,告诉 Selenium IDE 执行将从哪一行开始它的快捷键是“S”。

Start point

在上面的例子中,回放将从第三行(type | password | invalidPW)开始。一个测试脚本中只能有一个起点。

起点类似于执行命令,因为它们都依赖于当前显示的页面。如果您在错误的页面上,起点将失败。

断点

断点是告诉 Selenium IDE 在哪里自动暂停测试的指示器。快捷键是“B”。

Breakpoints

黄色高亮表示当前步骤处于待定状态。这证明 Selenium IDE 已在该步骤暂停执行。一个测试用例中可以有多个断点。

步骤

它允许您在暂停测试用例后逐个执行后续命令。让我们使用上一节“断点”中的场景。

Step

点击“步进”之前。

测试用例在“clickAndWait | login”行暂停。

Step 点击“步进”之后。

“clickAndWait | login”行运行并暂停到下一个命令(verifyTitle | Sign-on: Mercury Tours)。

请注意,即使没有断点,下一行也会暂停。这是“步进”功能的主要目的——它逐个执行后续命令,以便您有更多时间检查每个步骤之后的结果。

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

Important Things to Note When Using Other Formats in Source View

Selenium IDE 仅适用于 HTML – 其他格式仍处于实验模式不建议在源代码视图中使用其他格式创建或编辑测试,因为仍需要大量工作才能使其稳定。以下是 1.9.1 版已知的错误。

  • 除非您恢复到 HTML,否则您将无法执行回放或切换回表格视图。
  • 在源代码中安全添加命令的唯一方法是录制它们。
  • 当您手动修改源代码时,当您切换到另一种格式时,所有内容都将丢失。
  • 尽管您可以在源代码视图中保存测试用例,但 Selenium IDE 将无法打开它。

推荐的转换 Selenese 测试的方法是使用“文件”菜单下的“将测试用例导出为...”选项,而不是通过源代码视图。

摘要

  • 测试脚本可以通过录制或手动输入命令和参数来创建。
  • 手动创建脚本时,使用 Firebug 获取定位器。
  • “查找”按钮用于检查命令是否能够访问正确的元素。
  • 表格视图以表格形式显示测试脚本,而源代码视图以 HTML 格式显示。
  • 将源代码视图更改为非 HTML 格式仍处于实验阶段。
  • 不要在源代码视图中创建其他格式的测试。请改用导出功能。
  • 参数并非总是必需的。这取决于命令。
  • 共有三种命令类型
    • 动作 – 直接与页面元素交互
    • 访问器 – “读取”元素属性并将其存储到变量中
    • 断言 – 将实际值与预期值进行比较
  • 断言有三种类型
    • 断言 – 失败时,后续步骤不再执行
    • 验证 – 失败时,后续步骤仍会执行。
    • 等待 – 如果指定条件在超时时间内变为真,则通过;否则,它将失败。
  • 最常见的命令是
    • 打开
    • 单击/单击并等待
    • 类型/键入
    • 验证标题/断言标题
    • 验证文本是否存在
    • 验证元素是否存在
    • 验证表格
    • 等待页面加载
    • 等待元素出现