在 Selenium IDE 中存储变量、回显、警报、弹出窗口处理
在本教程中,我们将学习存储命令、Echo命令、警报和弹出窗口处理。
Selenium IDE 变量
存储
要在 Selenium IDE 中存储变量,我们使用“store”命令。下图将值“tutorial”存储到名为“myVariable”的变量中。
要访问变量,只需将其括在 ${ … } 符号中。例如,要将“myVariable”的值输入到 Mercury Tours 的“userName”文本框中,请在值字段中输入 ${myVariable}。
StoreElementPresent
此命令根据指定元素的存在性存储“true”或“false”。下面的脚本将布尔值“true”存储到“var1”,将“false”存储到“var2”。为了验证,我们将使用“echo”命令显示var1和var2的值。下图的Base URL设置为Mercury Tours主页。
StoreText
此命令用于将元素的内部文本存储到变量中。下图将Facebook中标签的内部文本存储到名为“textVar”的变量中。
由于它是页面中唯一的元素,因此使用“css=h1”作为目标是安全的。下图显示 Selenium IDE 能够通过正确打印其值,将字符串“Sign Up”保存在“textVar”变量中。
警报、弹出窗口和多窗口
警报可能是最简单的弹出窗口形式。处理警报最常用的 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) 创建如下所示的脚本。
步骤 3) 执行脚本,不要期望能看到实际的警报。
确认
确认是带有“确定”和“取消”按钮的弹出窗口,与只有“确定”按钮的警报不同。处理确认的命令与处理警报的命令类似。
- 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) 创建如下所示的脚本。这次,我们先按下“确定”按钮。
步骤 3) 执行脚本,请注意您没有看到实际的确认框,但网页能够指示 Selenium IDE 按下了哪个按钮。
步骤 4) 将“chooseOkOnNextConfirmation”命令替换为“chooseCancelOnNextConfirmation”并再次执行脚本。
多窗口
如果您碰巧点击了一个启动独立窗口的链接,您必须首先指示 Selenium IDE 选择该窗口,然后才能访问其中的元素。为此,您将使用窗口的标题作为其定位器。
我们使用 selectWindow 命令在窗口之间切换。
我们将使用链接 http://jsbin.com/ocinaj/1,其标题为“第一个窗口”。在该页面上找到的“这里”超链接将在新窗口中打开 Facebook,之后我们将指示 Selenium IDE 执行以下操作:
- 使用“selectWindow”命令及其标题作为定位符,将控制权从父窗口转移到新启动的 Facebook 窗口
- 验证新窗口的标题
- 使用“selectWindow”命令并将“null”作为其目标,选择回原始窗口。
- 验证当前选定窗口的标题
步骤 1) 将基本 URL 设置为 http://jsbin.com。
步骤 2) 创建如下所示的脚本。
我们需要“pause”命令来等待新启动的窗口加载,然后才能访问其标题。
步骤 3) 执行脚本。请注意,测试用例通过了,这意味着我们能够成功地在窗口之间切换并验证它们的标题。
请始终记住,将 selectWindow 的目标设置为“null”将自动选择父窗口(在此示例中,即找到元素“link=here”的窗口)
注意:自教程创建以来,Facebook 的标题已更改。请相应地修改代码。
摘要
- “store”命令(及其所有变体)用于在 Selenium IDE 中存储变量
- “echo”命令用于打印字符串值或变量
- 变量在打印或用于元素时用 ${…} 括起来
- Selenium IDE 在处理警报时自动按下“确定”按钮
-
在处理确认对话框时,您可以指示 Selenium IDE 使用哪个选项
- chooseOkOnNextConfirmation/chooseOkOnNextConfirmationAndWait
- chooseCancelOnNextConfirmation
- 在浏览器窗口之间切换时,窗口标题用作定位符。
- 使用“selectWindow”命令时,将目标设置为“null”将自动指示 Selenium IDE 选择父窗口。