在 Selenium IDE 中存储变量、回显、警报、弹出窗口处理

在本教程中,我们将学习存储命令、Echo命令、警报和弹出窗口处理。

Selenium IDE 变量

存储

要在 Selenium IDE 中存储变量,我们使用“store”命令。下图将值“tutorial”存储到名为“myVariable”的变量中。

Selenium IDE Variables

要访问变量,只需将其括在 ${ … } 符号中。例如,要将“myVariable”的值输入到 Mercury Tours 的“userName”文本框中,请在值字段中输入 ${myVariable}。

Selenium IDE Variables

StoreElementPresent

此命令根据指定元素的存在性存储“true”或“false”。下面的脚本将布尔值“true”存储到“var1”,将“false”存储到“var2”。为了验证,我们将使用“echo”命令显示var1和var2的值。下图的Base URL设置为Mercury Tours主页。

StoreElementPresent

StoreText

此命令用于将元素的内部文本存储到变量中。下图将Facebook中标签的内部文本存储到名为“textVar”的变量中。

StoreText

由于它是页面中唯一的元素,因此使用“css=h1”作为目标是安全的。下图显示 Selenium IDE 能够通过正确打印其值,将字符串“Sign Up”保存在“textVar”变量中。

StoreText

警报、弹出窗口和多窗口

警报可能是最简单的弹出窗口形式。处理警报最常用的 Selenium IDE 命令如下:

提醒 用途

assertAlert

assertNotAlert

检索警报消息并将其断言为您指定的字符串值

assertAlertPresent

assertAlertNotPresent

断言警报是否存在
storeAlert 检索警报消息并将其存储在您将指定的变量中
storeAlertPresent 如果警报存在则返回 TRUE;否则返回 FALSE

verifyAlert

verifyNotAlert

检索警报消息并验证其是否等于您指定的字符串值

verifyAlertPresent

verifyAlertNotPresent

验证警报是否存在

处理警报时请记住以下两点:

  • Selenium IDE 会自动点击警报窗口的“确定”按钮,因此您将无法看到实际的警报。
  • Selenium IDE 将无法处理页面 onload() 函数中的警报。它只能处理页面完全加载后生成的警报。

在此示例中,我们将使用 storeAlert 命令来显示,即使 Selenium IDE 没有显示实际警报,它仍然能够检索其消息。

步骤 1) 在 Selenium IDE 中,将 Base URL 设置为 http://jsbin.com。完整 URL 为:http://jsbin.com/usidix

步骤 2) 创建如下所示的脚本。

Alerts, Popup, and Multiple Windows

步骤 3) 执行脚本,不要期望能看到实际的警报。

Alerts, Popup, and Multiple Windows

确认

确认是带有“确定”和“取消”按钮的弹出窗口,与只有“确定”按钮的警报不同。处理确认的命令与处理警报的命令类似。

  • assertConfirmation/assertNotConfirmation
  • assertConfirmationPresent/assertConfirmationNotPresent
  • storeConfirmation
  • storeConfirmationPresent
  • verifyConfirmation/verifyNotConfirmation
  • verifyConfirmationPresent/verifyConfirmationNotPresent

但是,您需要使用这些附加命令来指示 Selenium 选择哪个选项,是“确定”还是“取消”按钮。

  • chooseOkOnNextConfirmation/chooseOkOnNextConfirmationAndWait
  • chooseCancelOnNextConfirmation

您应该在触发确认框的命令之前使用这些命令,以便 Selenium IDE 事先知道选择哪个选项。同样,在脚本执行期间您将无法看到实际的确认框。

让我们测试一个网页,其中有一个按钮,其编码目的是显示用户是按下了“确定”还是“取消”按钮。

步骤 1) 在 Selenium IDE 中,将基本 URL 设置为 http://jsbin.com

完整 URL 为:http://jsbin.com/enifaf

步骤 2) 创建如下所示的脚本。这次,我们先按下“确定”按钮。

Confirmations

步骤 3) 执行脚本,请注意您没有看到实际的确认框,但网页能够指示 Selenium IDE 按下了哪个按钮。

Confirmations

步骤 4) 将“chooseOkOnNextConfirmation”命令替换为“chooseCancelOnNextConfirmation”并再次执行脚本。

Confirmations

多窗口

如果您碰巧点击了一个启动独立窗口的链接,您必须首先指示 Selenium IDE 选择该窗口,然后才能访问其中的元素。为此,您将使用窗口的标题作为其定位器。

我们使用 selectWindow 命令在窗口之间切换。

我们将使用链接 http://jsbin.com/ocinaj/1,其标题为“第一个窗口”。在该页面上找到的“这里”超链接将在新窗口中打开 Facebook,之后我们将指示 Selenium IDE 执行以下操作:

  • 使用“selectWindow”命令及其标题作为定位符,将控制权从父窗口转移到新启动的 Facebook 窗口
  • 验证新窗口的标题
  • 使用“selectWindow”命令并将“null”作为其目标,选择回原始窗口。
  • 验证当前选定窗口的标题

Multiple Windows

步骤 1) 将基本 URL 设置为 http://jsbin.com。

步骤 2) 创建如下所示的脚本。

Multiple Windows

我们需要“pause”命令来等待新启动的窗口加载,然后才能访问其标题。

步骤 3) 执行脚本。请注意,测试用例通过了,这意味着我们能够成功地在窗口之间切换并验证它们的标题。

Multiple Windows

请始终记住,将 selectWindow 的目标设置为“null”将自动选择父窗口(在此示例中,即找到元素“link=here”的窗口)

注意:自教程创建以来,Facebook 的标题已更改。请相应地修改代码。

摘要

  • “store”命令(及其所有变体)用于在 Selenium IDE 中存储变量
  • “echo”命令用于打印字符串值或变量
  • 变量在打印或用于元素时用 ${…} 括起来
  • Selenium IDE 在处理警报时自动按下“确定”按钮
  • 在处理确认对话框时,您可以指示 Selenium IDE 使用哪个选项
    • chooseOkOnNextConfirmation/chooseOkOnNextConfirmationAndWait
    • chooseCancelOnNextConfirmation
  • 在浏览器窗口之间切换时,窗口标题用作定位符。
  • 使用“selectWindow”命令时,将目标设置为“null”将自动指示 Selenium IDE 选择父窗口。