Selenium命令——Selenese
Selenium提供一系列命令,可以用你能想到的所有方式全面测试你的Web应用系列。这些命令通常被称为Selenese。这些测试命令事实上构成了一种测试语言。
使用Selenese,用户可以通过HTML tags测试UI元素是否存在,测试特殊文本,测试死链接、输入框、下拉列表、提交表单和数据表等。通过扩展Selenium命令支持测试窗口尺寸、鼠标位置、警告、Ajax控件、弹出窗口、事件控制和其他Web应用特性。可以通过如下链接在线查看所在Selenium命令:http://release.seleniumhq.org/selenium-core/1.0.1/reference.html,命令会告诉Selenium工具要做什么,它有三种子类型:Actions、Accessors和Assertions。
(1)Actions决定Selenium工具会怎样操作Web应用系统。例如“点击某个链接”和“选择某个下拉选项”。如果一个Action失败,或者发生了错误,当前测试的执行会被终止。
(2)Accessors检查系统的当前状态,并将结果存放在变量中。例如“storeTitle”命令。它们也被用来自动生产断言。
(3)Assertions类似于Accessors,不过它们验证系统是否遵从于期望的表现。例如“确保页面标题是X”,“验证多选项框X被选中”。所有的Selenium Assertions可以归结为三种模式:“assert”、“verify”和“waitFor”。当一个“assert”失败,测试将被终止。当一个"verify"失败,测试将继续执行,并在日志中记录失败。通常使用“assert”确保测试在正确的页面上运行,接下来使用“verify”来验证表单数据、页签等。“waitFor”命令等待某些条件变为真(在Ajax应用中特别有用)。当条件变为真后,它将立刻成功。在预设时间内条件没有变为真,它将失败并停止测试执行。
Selenium脚本语法
Selenium的verifyText命令有两个参数,如表2-2所示。
命令 | 参数 | 参数 |
verifyText | //div//a[2] | Login |
Selenium命令的参数并不总是必需的,它依赖于命令。命令可能要求两个参数,或者一个参数,甚至一个参数也不要。
命令 | 参数 | 参数 |
goBackAndWait | ||
verifyTextPresent | Welcome to My Home Page | |
type | id=phone | (555)666-7066 |
type | id=address1 | ${myVariableAddress} |
在Selenium API速查手册中详细描述了每一个命令所需要的参数。参数有很多种,但典型参数如下:
Locator用于定位页面上的元素;
text pattern用于验证或者断言期望的页面内容;
text pattern和selenium variable用于在输入框中输入文本,或者在下拉选项列表选择一个选项。
Selenium-IDE执行的Selenium脚本,通常使用HTML文本格式存储。在HTML文本文件中使用HTML表格存储命令,命令由三列组成。第一列标识Selenium命令,第二列标识目标,最后一列保存值。根据选择Selenium命令不同,第二、三列可能并不需要有值。表中的每一行代表一条Selenium命令。下面举例,测试打开一个页面,验证页面标题,接着验证某些页面内容:
<table>
<tr><td>open</td><td></td><td>/download/<td></tr>
<tr><td>assertTitle</td><td></td><td>Downloads</td></tr>
<tr><td>verifyText</td><td>//h2</td><td>Downloads</td><tr>
</table>
用浏览器打开Selenium脚本对应的HTML文档,如表2-4所示。
命令 | 标识目标 | 保存值 |
open | /doenload/ | |
assertTitle | Downloads | |
verifyText | //h2 | Downloads |