存储变量、Echo、Alert、PopUp 处理 Selenium IDE
在本教程中,我们将学习存储命令、回显命令、警报和弹出处理。
Selenium IDE 变量
线上商城
将变量存储在 Selenium IDE,我们使用“store”命令。下图将值“tutorial”存储到名为“myVariable”的变量中。
要访问变量,只需将其括在 ${ … } 符号中即可。例如,要在“userName”文本框中输入“myVariable”的值 Mercury 旅游,在值字段中输入 ${myVariable}。
存储元素呈现
此命令根据指定元素的存在情况存储“true”或“false”。下面的脚本将布尔值“true”存储到“var1”,将“false”存储到“var2”。为了验证,我们将使用“echo”命令显示 var1 和 var2 的值。下图中的基本 URL 设置为 Mercury 旅游主页。
商店文本
此命令用于将元素的内部文本存储到变量中。下图将 Facebook 中标签的内部文本存储到名为“textVar”的变量中。
由于它是页面中唯一的元素,因此可以安全地使用“css=h1”作为目标。下图显示了 Selenium IDE 能够通过正确打印其值将字符串“Sign Up”保存在“textVar”变量中。
警报、弹出窗口和多重 Windows
警报可能是最简单的弹出窗口形式。最常见的 Selenium 处理警报使用的 IDE 命令如下:
通知 | 使用 |
---|---|
断言警报 断言不警报 |
检索警报消息并将其断言为您指定的字符串值 |
断言警报呈现 断言警报不存在 |
断言是否存在警报 |
商店警报 | 检索警报消息并将其存储在您指定的变量中 |
商店警报呈现 | 如果存在警报则返回 TRUE;否则返回 FALSE |
验证警报 验证未警报 |
检索警报消息并验证它是否等于您指定的字符串值 |
验证警报存在 验证警报不存在 |
验证是否存在警报 |
使用警报时请记住以下两点:
- Selenium IDE 会自动单击警报窗口的“确定”按钮,因此您将无法看到实际的警报。
- Selenium IDE 无法处理页面 onload() 函数内的警报。它只能处理页面完全加载后生成的警报。
在此示例中,我们将使用 storeAlert 命令来显示,尽管 Selenium IDE 没有显示实际警报,但它仍然能够检索其消息。
步骤1) In Selenium IDE,将基本 URL 设置为 http://jsbin.com。完整 URL 为:http://jsbin.com/usidix
步骤2) 创建脚本,如下所示。
步骤3) 执行脚本,不要期望能够看到实际的警报。
确认
确认是弹出窗口,其中会显示“确定”和“取消”按钮,而警报则只显示“确定”按钮。处理确认时可以使用的命令与处理警报时使用的命令类似。
- 断言确认/断言未确认
- 断言确认存在/断言确认不存在
- 商店确认
- 商店确认信息
- 验证确认/验证未确认
- 验证确认存在/验证确认不存在
但是,这些是你需要用来指导的附加命令 Selenium 选择哪个选项,是“确定”还是“取消”按钮。
- 选择下一步确认时确定/选择下一步确认时确定并等待
- 选择下次确认时取消
您应该在触发确认框的命令之前使用这些命令,以便 Selenium IDE 会预先知道选择哪个选项。同样,在脚本执行期间您将无法看到实际的确认框。
让我们测试一个网页,该网页上有一个按钮,该按钮经过编码以显示用户是否按下了“确定”或“取消”按钮。
步骤1) In Selenium IDE,将基本 URL 设置为 http://jsbin.com
完整网址为:http://jsbin.com/enifaf
步骤2) 按照如下所示创建脚本。这次,我们先按“确定”按钮。
步骤3) 执行脚本并注意你没有看到实际的确认,但网页能够指示哪个按钮 Selenium IDE 已按下。
步骤4) 将“chooseOkOnNextConfirmation”命令替换为“chooseCancelOnNextConfirmation”并再次执行脚本。
多 Windows
如果你碰巧点击了一个打开单独窗口的链接,你必须先指示 Selenium IDE 会先选择该窗口,然后才能访问其中的元素。为此,您将使用窗口的标题作为其定位器。
我们使用 selectWindow 命令在窗口之间切换。
我们将使用标题为“第一个窗口”的链接 http://jsbin.com/ocinaj/1。该页面上的“此处”超链接将在新窗口中打开 Facebook,之后我们将指示 Selenium IDE 执行以下操作:
- 使用“selectWindow”命令并将其标题作为定位器,将控制权从父窗口转移到新启动的 Facebook 窗口
- 验证新窗口的标题
- 使用“selectWindow”命令重新选择原始窗口并以“null”作为其目标。
- 验证当前选定窗口的标题
步骤1) 将基本 URL 设置为 http://jsbin.com。
步骤2) 创建脚本,如下所示。
我们需要“暂停”命令来等待新启动的窗口加载,然后我们才能访问其标题。
步骤3) 执行脚本。请注意 测试用例 通过,这意味着我们能够在窗口之间切换并成功验证其标题。
永远记住,将 selectWindow 的目标设置为“null”将自动选择父窗口(在本例中,即找到元素“link=here”的窗口)
请注意: 自教程创建以来,Facebook 已更改标题。请相应地修改代码
结语
- “store”命令(及其所有变体)用于将变量存储在 Selenium IDE
- “echo”命令用于打印字符串值或变量
- 在打印或在元素上使用时,变量被括在 ${…} 中
- Selenium IDE 在处理警报时自动按下 OK 按钮
-
处理确认对话框时,你可以指示 Selenium IDE 使用哪个选项:
- 选择下一步确认时确定/选择下一步确认时确定并等待
- 选择下次确认时取消
- 在浏览器窗口之间切换时,窗口标题用作定位器。
- 使用“selectWindow”命令时,设置 Target 设置为“null”将自动指向 Selenium IDE 选择父窗口。